+
+
diff --git a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUnitTest.java b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUnitTest.java
index 69da2591dd..e9b495279a 100644
--- a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUnitTest.java
+++ b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUnitTest.java
@@ -6,12 +6,13 @@ import org.junit.Test;
public class ProductHelperUnitTest {
- ProductHelper productHelper = new ProductHelper();
-
@Test
- public void whenInvokedGetDiscount_thenGetItFromCache() {
+ public void whenInvokedGetDiscountTwice_thenGetItFromCache() {
+ ProductHelper productHelper = new ProductHelper();
+ assertTrue(productHelper.getCacheMissCount() == 0);
assertTrue(productHelper.getDiscount("Sports") == 20);
- assertTrue(productHelper.getDiscount("Electronics") == 0);
+ assertTrue(productHelper.getDiscount("Sports") == 20);
+ assertTrue(productHelper.getCacheMissCount() == 1);
}
}
diff --git a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUsingLoaderUnitTest.java b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUsingLoaderUnitTest.java
index 2656e75cab..3ad77aa2de 100644
--- a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUsingLoaderUnitTest.java
+++ b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperUsingLoaderUnitTest.java
@@ -6,12 +6,16 @@ import org.junit.Test;
public class ProductHelperUsingLoaderUnitTest {
- ProductHelperUsingLoader productHelper = new ProductHelperUsingLoader();
-
@Test
- public void whenInvokedGetDiscount_thenPopulateCache() {
+ public void whenInvokedGetDiscount_thenPopulateCacheUsingLoader() {
+ ProductHelperUsingLoader productHelper = new ProductHelperUsingLoader();
+ assertTrue(productHelper.getCacheMissCount() == 0);
+
assertTrue(productHelper.getDiscount("Sports") == 20);
+ assertTrue(productHelper.getCacheMissCount() == 1);
+
assertTrue(productHelper.getDiscount("Electronics") == 10);
+ assertTrue(productHelper.getCacheMissCount() == 2);
}
}
diff --git a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithEventListenerUnitTest.java b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithEventListenerUnitTest.java
index 7bf08232f4..9aeb9f0552 100644
--- a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithEventListenerUnitTest.java
+++ b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithEventListenerUnitTest.java
@@ -6,10 +6,9 @@ import org.junit.Test;
public class ProductHelperWithEventListenerUnitTest {
- ProductHelperWithEventListener productHelper = new ProductHelperWithEventListener();
-
@Test
public void whenEntryAddedInCache_thenEventListenerCalled() {
+ ProductHelperWithEventListener productHelper = new ProductHelperWithEventListener();
assertTrue(productHelper.getDiscount("Sports") == 20);
}
diff --git a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithExpiryUnitTest.java b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithExpiryUnitTest.java
index 65feba2c70..a3303ca0aa 100644
--- a/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithExpiryUnitTest.java
+++ b/libraries-3/src/test/java/com/baeldung/cache2k/ProductHelperWithExpiryUnitTest.java
@@ -6,13 +6,17 @@ import org.junit.Test;
public class ProductHelperWithExpiryUnitTest {
- ProductHelperWithExpiry productHelper = new ProductHelperWithExpiry();
-
@Test
- public void whenInvokedGetDiscountForExpiredProduct_thenNoDiscount() throws InterruptedException {
+ public void whenInvokedGetDiscountAfterExpiration_thenDiscountCalculatedAgain() throws InterruptedException {
+ ProductHelperWithExpiry productHelper = new ProductHelperWithExpiry();
+ assertTrue(productHelper.getCacheMissCount() == 0);
assertTrue(productHelper.getDiscount("Sports") == 20);
+ assertTrue(productHelper.getCacheMissCount() == 1);
+
Thread.sleep(20);
- assertTrue(productHelper.getDiscount("Sports") == 0);
+
+ assertTrue(productHelper.getDiscount("Sports") == 20);
+ assertTrue(productHelper.getCacheMissCount() == 2);
}
}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/AlternativeAdapterUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/AlternativeAdapterUnitTest.java
new file mode 100644
index 0000000000..63d80bfe58
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/AlternativeAdapterUnitTest.java
@@ -0,0 +1,105 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.time.Instant;
+
+import com.squareup.moshi.FromJson;
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.JsonQualifier;
+import com.squareup.moshi.Moshi;
+import com.squareup.moshi.ToJson;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.Test;
+
+public class AlternativeAdapterUnitTest {
+ @Test
+ public void whenSerializing_thenAlternativeAdapterUsed() {
+ Moshi moshi = new Moshi.Builder()
+ .add(new EpochMillisAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = jsonAdapter.toJson(new Post("Introduction to Moshi Json", "Baeldung", Instant.now()));
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializing_thenAlternativeAdapterUsed() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .add(new EpochMillisAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"author\":\"Baeldung\",\"posted\":1582095269204,\"title\":\"Introduction to Moshi Json\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+
+ }
+
+ public static class Post {
+ String title;
+ String author;
+ @EpochMillis Instant posted;
+
+ public Post() {
+ }
+
+ public Post(String title, String author, Instant posted) {
+ this.title = title;
+ this.author = author;
+ this.posted = posted;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public Instant getPosted() {
+ return posted;
+ }
+
+ public void setPosted(Instant posted) {
+ this.posted = posted;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).append("posted", posted)
+ .toString();
+ }
+ }
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD})
+ @JsonQualifier
+ public @interface EpochMillis {
+ }
+
+ public static class EpochMillisAdapter {
+ @ToJson
+ public Long toJson(@EpochMillis Instant input) {
+ return input.toEpochMilli();
+ }
+ @FromJson
+ @EpochMillis
+ public Instant fromJson(Long input) {
+ return Instant.ofEpochMilli(input);
+ }
+
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/ArrayUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/ArrayUnitTest.java
new file mode 100644
index 0000000000..83bb2bb128
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/ArrayUnitTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.List;
+
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import com.squareup.moshi.Types;
+import org.junit.Test;
+
+public class ArrayUnitTest {
+ @Test
+ public void whenSerializingList_thenJsonArrayProduced() {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ Type type = Types.newParameterizedType(List.class, String.class);
+ JsonAdapter> jsonAdapter = moshi.adapter(type);
+
+ String json = jsonAdapter.toJson(Arrays.asList("One", "Two", "Three"));
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializingJsonArray_thenListProduced() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ Type type = Types.newParameterizedType(List.class, String.class);
+ JsonAdapter> jsonAdapter = moshi.adapter(type);
+
+ String json = "[\"One\",\"Two\",\"Three\"]";
+ List result = jsonAdapter.fromJson(json);
+ System.out.println(result);
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/ComplexAdapterUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/ComplexAdapterUnitTest.java
new file mode 100644
index 0000000000..f0f8e9a95d
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/ComplexAdapterUnitTest.java
@@ -0,0 +1,94 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+
+import com.squareup.moshi.FromJson;
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import com.squareup.moshi.ToJson;
+import org.junit.Test;
+
+public class ComplexAdapterUnitTest {
+ @Test
+ public void whenSerializing_thenCorrectJsonProduced() {
+ Moshi moshi = new Moshi.Builder()
+ .add(new JsonDateTimeAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(ZonedDateTime.class);
+
+ String json = jsonAdapter.toJson(ZonedDateTime.now());
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializing_thenCorrectJsonConsumed() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .add(new JsonDateTimeAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(ZonedDateTime.class);
+
+ String json = "{\"date\":\"2020-02-17\",\"time\":\"07:53:27.064\",\"timezone\":\"Europe/London\"}";
+ ZonedDateTime now = jsonAdapter.fromJson(json);
+ System.out.println(now);
+
+ }
+
+ public static class JsonDateTimeAdapter {
+ @ToJson
+ public JsonDateTime toJson(ZonedDateTime input) {
+ String date = input.toLocalDate().toString();
+ String time = input.toLocalTime().toString();
+ String timezone = input.getZone().toString();
+ return new JsonDateTime(date, time, timezone);
+ }
+ @FromJson
+ public ZonedDateTime fromJson(JsonDateTime input) {
+ LocalDate date = LocalDate.parse(input.getDate());
+ LocalTime time = LocalTime.parse(input.getTime());
+ ZoneId timezone = ZoneId.of(input.getTimezone());
+ return ZonedDateTime.of(date, time, timezone);
+ }
+ }
+ public static class JsonDateTime {
+ private String date;
+ private String time;
+ private String timezone;
+
+ public JsonDateTime() {
+ }
+
+ public JsonDateTime(String date, String time, String timezone) {
+ this.date = date;
+ this.time = time;
+ this.timezone = timezone;
+ }
+
+ public String getDate() {
+ return date;
+ }
+
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public String getTimezone() {
+ return timezone;
+ }
+
+ public void setTimezone(String timezone) {
+ this.timezone = timezone;
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/DefaultUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/DefaultUnitTest.java
new file mode 100644
index 0000000000..0b4ecc23a5
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/DefaultUnitTest.java
@@ -0,0 +1,68 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+import java.time.Instant;
+
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.Test;
+
+public class DefaultUnitTest {
+
+ @Test
+ public void whenDeserializing_thenFieldsGetDefaultValues() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"title\":\"My Post\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+ }
+ public static class Post {
+ private String title;
+ private String author;
+ private String posted;
+
+ public Post() {
+ posted = Instant.now().toString();
+ }
+
+ public Post(String title, String author, String posted) {
+ this.title = title;
+ this.author = author;
+ this.posted = posted;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getPosted() {
+ return posted;
+ }
+
+ public void setPosted(String posted) {
+ this.posted = posted;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).append("posted", posted)
+ .toString();
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/PrimitiveUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/PrimitiveUnitTest.java
new file mode 100644
index 0000000000..e26e93ba8c
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/PrimitiveUnitTest.java
@@ -0,0 +1,77 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.Test;
+
+public class PrimitiveUnitTest {
+ @Test
+ public void whenSerializing_thenCorrectJsonProduced() {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ Post post = new Post("My Post", "Baeldung", "This is my post");
+ String json = jsonAdapter.toJson(post);
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializing_thenCorrectJsonConsumed() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"author\":\"Baeldung\",\"text\":\"This is my post\",\"title\":\"My Post\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+ }
+
+ public static class Post {
+ private String title;
+ private String author;
+ private String text;
+
+ public Post() {
+ }
+
+ public Post(String title, String author, String text) {
+ this.title = title;
+ this.author = author;
+ this.text = text;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).append("text", text)
+ .toString();
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/RenameUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/RenameUnitTest.java
new file mode 100644
index 0000000000..2118538a19
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/RenameUnitTest.java
@@ -0,0 +1,68 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+
+import com.squareup.moshi.Json;
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.jupiter.api.Test;
+
+public class RenameUnitTest {
+
+ @Test
+ public void whenSerializing_thenFieldsGetRenamed() {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ Post post = new Post("My Post", "Baeldung");
+ String json = jsonAdapter.toJson(post);
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenSerializing_thenRenamedFieldsGetConsumed() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"authored_by\":\"Baeldung\",\"title\":\"My Post\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+ }
+ public static class Post {
+ private String title;
+ @Json(name = "authored_by")
+ private String author;
+
+ public Post() {
+ }
+
+ public Post(String title, String author) {
+ this.title = title;
+ this.author = author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).toString();
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/SimpleAdapterUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/SimpleAdapterUnitTest.java
new file mode 100644
index 0000000000..e0be2f8a66
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/SimpleAdapterUnitTest.java
@@ -0,0 +1,129 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.squareup.moshi.FromJson;
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import com.squareup.moshi.ToJson;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.Test;
+
+public class SimpleAdapterUnitTest {
+ @Test
+ public void whenSerializing_thenAdapterUsed() {
+ Moshi moshi = new Moshi.Builder()
+ .add(new AuthorAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ Post post = new Post("My Post", new Author("Baeldung", "baeldung@example.com"), "This is my post");
+ String json = jsonAdapter.toJson(post);
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializing_thenAdapterUsed() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .add(new AuthorAdapter())
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"author\":\"Baeldung \",\"text\":\"This is my post\",\"title\":\"My Post\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+ }
+ public static class AuthorAdapter {
+ private Pattern pattern = Pattern.compile("^(.*) <(.*)>$");
+ @ToJson
+ public String toJson(Author author) {
+ return author.name + " <" + author.email + ">";
+ }
+
+ @FromJson
+ public Author fromJson(String author) {
+ Matcher matcher = pattern.matcher(author);
+ return matcher.find() ? new Author(matcher.group(1), matcher.group(2)) : null;
+ }
+ }
+
+ public static class Author {
+ private String name;
+ private String email;
+
+ public Author() {
+ }
+
+ public Author(String name, String email) {
+ this.name = name;
+ this.email = email;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("name", name).append("email", email).toString();
+ }
+ }
+ public static class Post {
+ private String title;
+ private Author author;
+ private String text;
+
+ public Post() {
+ }
+
+ public Post(String title, Author author, String text) {
+ this.title = title;
+ this.author = author;
+ this.text = text;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Author getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(Author author) {
+ this.author = author;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).append("text", text)
+ .toString();
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/moshi/TransientUnitTest.java b/libraries-3/src/test/java/com/baeldung/moshi/TransientUnitTest.java
new file mode 100644
index 0000000000..2554e937b3
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/moshi/TransientUnitTest.java
@@ -0,0 +1,66 @@
+package com.baeldung.moshi;
+
+import java.io.IOException;
+
+import com.squareup.moshi.JsonAdapter;
+import com.squareup.moshi.Moshi;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.junit.jupiter.api.Test;
+
+public class TransientUnitTest {
+
+ @Test
+ public void whenSerializing_thenTransientFieldIgnored() {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ Post post = new Post("My Post", "Baeldung");
+ String json = jsonAdapter.toJson(post);
+ System.out.println(json);
+ }
+
+ @Test
+ public void whenDeserializing_thenTransientFieldIgnored() throws IOException {
+ Moshi moshi = new Moshi.Builder()
+ .build();
+ JsonAdapter jsonAdapter = moshi.adapter(Post.class);
+
+ String json = "{\"authored_by\":\"Baeldung\",\"title\":\"My Post\"}";
+ Post post = jsonAdapter.fromJson(json);
+ System.out.println(post);
+ }
+ public static class Post {
+ private String title;
+ private transient String author;
+
+ public Post() {
+ }
+
+ public Post(String title, String author) {
+ this.title = title;
+ this.author = author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("title", title).append("author", author).toString();
+ }
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java b/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java
new file mode 100644
index 0000000000..8b869d0742
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.takes;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.net.URI;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.junit.Test;
+import org.takes.http.FtRemote;
+
+public class TakesAppIntegrationTest {
+
+ @Test
+ public void givenTake_whenRunRemoteServer_thenRespond() throws Exception {
+ new FtRemote(new TakesContact()).exec(
+ new FtRemote.Script() {
+ @Override
+ public void exec(final URI home) throws IOException {
+ HttpClient client = HttpClientBuilder.create().build();
+ HttpResponse response = client.execute(new HttpGet(home));
+ int statusCode = response.getStatusLine().getStatusCode();
+ HttpEntity entity = response.getEntity();
+ String result = EntityUtils.toString(entity);
+
+ assertEquals(200, statusCode);
+ assertEquals("Contact us at https://www.baeldung.com", result);
+ }
+ });
+ }
+}
diff --git a/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java b/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java
new file mode 100644
index 0000000000..5f8b7c57fc
--- /dev/null
+++ b/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java
@@ -0,0 +1,17 @@
+package com.baeldung.takes;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.takes.rq.RqFake;
+import org.takes.rs.RsPrint;
+
+public class TakesContactUnitTest {
+
+ @Test
+ public void givenTake_whenInvokeActMethod_thenRespond() throws Exception {
+ final String resp = new RsPrint(new TakesContact().act(new RqFake())).printBody();
+ assertEquals("Contact us at https://www.baeldung.com", resp);
+ }
+
+}
diff --git a/lombok-custom/pom.xml b/lombok-custom/pom.xml
index 1455a4f6c6..220367bfe9 100644
--- a/lombok-custom/pom.xml
+++ b/lombok-custom/pom.xml
@@ -36,12 +36,12 @@
- default-tools.jar
+ default-profile
-
- java.vendor
- Oracle Corporation
-
+ true
+
+ ${java.home}/../lib/tools.jar
+
diff --git a/persistence-modules/java-mongodb/src/test/java/com/baeldung/aggregation/AggregationLiveTest.java b/persistence-modules/java-mongodb/src/test/java/com/baeldung/aggregation/AggregationLiveTest.java
index b3f01be566..62ab13563a 100644
--- a/persistence-modules/java-mongodb/src/test/java/com/baeldung/aggregation/AggregationLiveTest.java
+++ b/persistence-modules/java-mongodb/src/test/java/com/baeldung/aggregation/AggregationLiveTest.java
@@ -1,111 +1,111 @@
-package com.baeldung.aggregation;
-
-import static com.mongodb.client.model.Aggregates.count;
-import static com.mongodb.client.model.Aggregates.group;
-import static com.mongodb.client.model.Aggregates.limit;
-import static com.mongodb.client.model.Aggregates.match;
-import static com.mongodb.client.model.Aggregates.out;
-import static com.mongodb.client.model.Aggregates.project;
-import static com.mongodb.client.model.Aggregates.sort;
-import static org.junit.Assert.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Arrays;
-
-import org.bson.Document;
-import org.bson.conversions.Bson;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoClients;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoDatabase;
-import com.mongodb.client.model.Accumulators;
-import com.mongodb.client.model.Filters;
-import com.mongodb.client.model.Projections;
-import com.mongodb.client.model.Sorts;
-
-public class AggregationLiveTest {
-
- private static final String DATABASE = "world";
- private static final String COLLECTION = "countries";
- private static final String DATASET_JSON = "/countrydata.json";
- private static MongoClient mongoClient;
- private static MongoDatabase database;
- private static MongoCollection collection;
-
- @BeforeClass
- public static void setUpDB() throws IOException {
- mongoClient = MongoClients.create();
- database = mongoClient.getDatabase(DATABASE);
- collection = database.getCollection(COLLECTION);
-
- collection.drop();
-
- InputStream is = AggregationLiveTest.class.getResourceAsStream(DATASET_JSON);
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- reader.lines()
- .forEach(line -> collection.insertOne(Document.parse(line)));
- reader.close();
- }
-
- @Test
- public void givenCountryCollection_whenNAFTACountriesCounted_thenThree() {
- Document naftaCountries = collection.aggregate(Arrays.asList(match(Filters.eq("regionalBlocs.acronym", "NAFTA")), count()))
- .first();
-
- assertEquals(3, naftaCountries.get("count"));
- }
-
- @Test
- public void givenCountryCollection_whenAreaSortedDescending_thenSuccess() {
-
- collection.aggregate(Arrays.asList(sort(Sorts.descending("area")), limit(7), out("largest_seven")))
- .toCollection();
-
- MongoCollection largestSeven = database.getCollection("largest_seven");
-
- assertEquals(7, largestSeven.countDocuments());
-
- Document usa = largestSeven.find(Filters.eq("alpha3Code", "USA"))
- .first();
-
- assertNotNull(usa);
- }
-
- @Test
- public void givenCountryCollection_whenCountedRegionWise_thenMaxInAfrica() {
- Document maxCountriedRegion = collection.aggregate(Arrays.asList(group("$region", Accumulators.sum("tally", 1)), sort(Sorts.descending("tally"))))
- .first();
- assertTrue(maxCountriedRegion.containsValue("Africa"));
- }
-
- @Test
- public void givenCountryCollection_whenNeighborsCalculated_thenMaxIsFifteenInChina() {
- Bson borderingCountriesCollection = project(Projections.fields(Projections.excludeId(), Projections.include("name"), Projections.computed("borderingCountries", Projections.computed("$size", "$borders"))));
-
- int maxValue = collection.aggregate(Arrays.asList(borderingCountriesCollection, group(null, Accumulators.max("max", "$borderingCountries"))))
- .first()
- .getInteger("max");
-
- assertEquals(15, maxValue);
-
- Document maxNeighboredCountry = collection.aggregate(Arrays.asList(borderingCountriesCollection, match(Filters.eq("borderingCountries", maxValue))))
- .first();
- assertTrue(maxNeighboredCountry.containsValue("China"));
-
- }
-
- @AfterClass
- public static void cleanUp() {
- mongoClient.close();
- }
-
-}
+package com.baeldung.aggregation;
+
+import static com.mongodb.client.model.Aggregates.count;
+import static com.mongodb.client.model.Aggregates.group;
+import static com.mongodb.client.model.Aggregates.limit;
+import static com.mongodb.client.model.Aggregates.match;
+import static com.mongodb.client.model.Aggregates.out;
+import static com.mongodb.client.model.Aggregates.project;
+import static com.mongodb.client.model.Aggregates.sort;
+import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Arrays;
+
+import org.bson.Document;
+import org.bson.conversions.Bson;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.Accumulators;
+import com.mongodb.client.model.Filters;
+import com.mongodb.client.model.Projections;
+import com.mongodb.client.model.Sorts;
+
+public class AggregationLiveTest {
+
+ private static final String DATABASE = "world";
+ private static final String COLLECTION = "countries";
+ private static final String DATASET_JSON = "/countrydata.json";
+ private static MongoClient mongoClient;
+ private static MongoDatabase database;
+ private static MongoCollection collection;
+
+ @BeforeClass
+ public static void setUpDB() throws IOException {
+ mongoClient = MongoClients.create();
+ database = mongoClient.getDatabase(DATABASE);
+ collection = database.getCollection(COLLECTION);
+
+ collection.drop();
+
+ InputStream is = AggregationLiveTest.class.getResourceAsStream(DATASET_JSON);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+ reader.lines()
+ .forEach(line -> collection.insertOne(Document.parse(line)));
+ reader.close();
+ }
+
+ @Test
+ public void givenCountryCollection_whenEnglishSpeakingCountriesCounted_thenNinetyOne() {
+ Document englishSpeakingCountries = collection.aggregate(Arrays.asList(match(Filters.eq("languages.name", "English")), count()))
+ .first();
+
+ assertEquals(91, englishSpeakingCountries.get("count"));
+ }
+
+ @Test
+ public void givenCountryCollection_whenAreaSortedDescending_thenSuccess() {
+
+ collection.aggregate(Arrays.asList(sort(Sorts.descending("area")), limit(7), out("largest_seven")))
+ .toCollection();
+
+ MongoCollection largestSeven = database.getCollection("largest_seven");
+
+ assertEquals(7, largestSeven.countDocuments());
+
+ Document usa = largestSeven.find(Filters.eq("alpha3Code", "USA"))
+ .first();
+
+ assertNotNull(usa);
+ }
+
+ @Test
+ public void givenCountryCollection_whenCountedRegionWise_thenMaxInAfrica() {
+ Document maxCountriedRegion = collection.aggregate(Arrays.asList(group("$region", Accumulators.sum("tally", 1)), sort(Sorts.descending("tally"))))
+ .first();
+ assertTrue(maxCountriedRegion.containsValue("Africa"));
+ }
+
+ @Test
+ public void givenCountryCollection_whenNeighborsCalculated_thenMaxIsFifteenInChina() {
+ Bson borderingCountriesCollection = project(Projections.fields(Projections.excludeId(), Projections.include("name"), Projections.computed("borderingCountries", Projections.computed("$size", "$borders"))));
+
+ int maxValue = collection.aggregate(Arrays.asList(borderingCountriesCollection, group(null, Accumulators.max("max", "$borderingCountries"))))
+ .first()
+ .getInteger("max");
+
+ assertEquals(15, maxValue);
+
+ Document maxNeighboredCountry = collection.aggregate(Arrays.asList(borderingCountriesCollection, match(Filters.eq("borderingCountries", maxValue))))
+ .first();
+ assertTrue(maxNeighboredCountry.containsValue("China"));
+
+ }
+
+ @AfterClass
+ public static void cleanUp() {
+ mongoClient.close();
+ }
+
+}
diff --git a/persistence-modules/redis/src/main/java/com/baeldung/redis_scan/client/RedisClient.java b/persistence-modules/redis/src/main/java/com/baeldung/redis_scan/client/RedisClient.java
index 2fe7a787e0..72ff42ff74 100644
--- a/persistence-modules/redis/src/main/java/com/baeldung/redis_scan/client/RedisClient.java
+++ b/persistence-modules/redis/src/main/java/com/baeldung/redis_scan/client/RedisClient.java
@@ -145,5 +145,10 @@ public class RedisClient {
log.error("Exception caught in flushAll", ex);
}
}
+
+ public void destroyInstance() {
+ jedisPool = null;
+ instance = null;
+ }
}
diff --git a/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/NaiveApproachIntegrationTest.java b/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/NaiveApproachIntegrationTest.java
index c24b88e20c..9bf0b2b086 100644
--- a/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/NaiveApproachIntegrationTest.java
+++ b/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/NaiveApproachIntegrationTest.java
@@ -25,13 +25,14 @@ public class NaiveApproachIntegrationTest {
s.close();
redisServer = new RedisServer(port);
- redisServer.start();
}
@AfterClass
public static void destroy() {
- if (redisServer.isActive())
+ if (redisServer.isActive()) {
redisServer.stop();
+ redisClient.destroyInstance();
+ }
}
@Before
diff --git a/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/ScanStrategyIntegrationTest.java b/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/ScanStrategyIntegrationTest.java
index 828b7a3183..9bde969b58 100644
--- a/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/ScanStrategyIntegrationTest.java
+++ b/persistence-modules/redis/src/test/java/com/baeldung/redis_scan/ScanStrategyIntegrationTest.java
@@ -32,13 +32,14 @@ public class ScanStrategyIntegrationTest {
s.close();
redisServer = new RedisServer(port);
- redisServer.start();
}
@AfterClass
public static void destroy() {
- if (redisServer.isActive())
+ if (redisServer.isActive()) {
redisServer.stop();
+ redisClient.destroyInstance();
+ }
}
@Before
diff --git a/persistence-modules/spring-data-couchbase-2/README.md b/persistence-modules/spring-data-couchbase-2/README.md
index 3145fc653a..aa6f7375cb 100644
--- a/persistence-modules/spring-data-couchbase-2/README.md
+++ b/persistence-modules/spring-data-couchbase-2/README.md
@@ -1,9 +1,9 @@
## Spring Data Couchbase Tutorial Project
### Relevant Articles:
-- [Intro to Spring Data Couchbase](http://www.baeldung.com/spring-data-couchbase)
-- [Entity Validation, Optimistic Locking, and Query Consistency in Spring Data Couchbase](http://www.baeldung.com/entity-validation-locking-and-query-consistency-in-spring-data-couchbase)
-- [Multiple Buckets and Spatial View Queries in Spring Data Couchbase](http://www.baeldung.com/spring-data-couchbase-buckets-and-spatial-view-queries)
+- [Intro to Spring Data Couchbase](https://www.baeldung.com/spring-data-couchbase)
+- [Entity Validation, Optimistic Locking, and Query Consistency in Spring Data Couchbase](https://www.baeldung.com/entity-validation-locking-and-query-consistency-in-spring-data-couchbase)
+- [Multiple Buckets and Spatial View Queries in Spring Data Couchbase](https://www.baeldung.com/spring-data-couchbase-buckets-and-spatial-view-queries)
### Overview
This Maven project contains the Java code for Spring Data Couchbase
@@ -25,14 +25,14 @@ mvn clean install
### Package Organization
Java classes for the first two tutorials listed above are in src/main/java in the package hierarchy
-org.baeldung.spring.data.couchbase
+com.baeldung.spring.data.couchbase
Java classes for the multiple-bucket tutorials are in src/main/java in the package hierarchy
-org.baeldung.spring.data.couchbase2b
+com.baeldung.spring.data.couchbase2b
### Running the tests
The test classes for the single-bucket tutorials are in src/test/java in the package
-org.baeldung.spring.data.couchbase.service:
+com.baeldung.spring.data.couchbase.service:
- PersonServiceTest (abstract)
- PersonRepositoryTest (concrete)
- PersonTemplateServiceTest (concrete)
@@ -41,7 +41,7 @@ org.baeldung.spring.data.couchbase.service:
- StudentTemplateServiceTest (concrete)
The concrete test classes for the multiple-bucket tutorial are in src/test/java in the package
-org.baeldung.spring.data.couchbase2b.service:
+com.baeldung.spring.data.couchbase2b.service:
- CampusRepositoryServiceImplTest
- PersonRepositoryServiceImplTest
- StudentRepositoryServiceImplTest
diff --git a/persistence-modules/spring-data-couchbase-2/pom.xml b/persistence-modules/spring-data-couchbase-2/pom.xml
index 484561ddaa..0a20a3ff0e 100644
--- a/persistence-modules/spring-data-couchbase-2/pom.xml
+++ b/persistence-modules/spring-data-couchbase-2/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
+ com.baeldungspring-data-couchbase-20.1-SNAPSHOTspring-data-couchbase-2
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java
similarity index 97%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java
index c357ab8596..d710a35796 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Campus.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.model;
+package com.baeldung.spring.data.couchbase.model;
import javax.validation.constraints.NotNull;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java
similarity index 97%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java
index fd41427d20..1e081f01da 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Person.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.model;
+package com.baeldung.spring.data.couchbase.model;
import javax.validation.constraints.NotNull;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java
similarity index 98%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java
index 726ed2347e..e979eca864 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/model/Student.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.model;
+package com.baeldung.spring.data.couchbase.model;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java
similarity index 54%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java
index 9a5bf21492..2aef524caf 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.repos;
+package com.baeldung.spring.data.couchbase.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
public interface CustomStudentRepository {
List findByFirstNameStartsWith(String s);
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java
similarity index 85%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java
index 751895502c..c4742ac44a 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.repos;
+package com.baeldung.spring.data.couchbase.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java
similarity index 71%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java
index 717feb858f..dc9a20ffa2 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/PersonRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/PersonRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.repos;
+package com.baeldung.spring.data.couchbase.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.model.Person;
import org.springframework.data.repository.CrudRepository;
public interface PersonRepository extends CrudRepository {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java
similarity index 73%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java
index 9bbdeec642..7ea9433f21 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/repos/StudentRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/StudentRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.repos;
+package com.baeldung.spring.data.couchbase.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.springframework.data.repository.CrudRepository;
public interface StudentRepository extends CrudRepository, CustomStudentRepository {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java
similarity index 89%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java
index 49548bdbfb..4051585e31 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java
@@ -1,11 +1,11 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
-import org.baeldung.spring.data.couchbase.repos.PersonRepository;
+import com.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.repos.PersonRepository;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java
similarity index 75%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java
index a823908b01..f321eba94e 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.model.Person;
public interface PersonService {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java
similarity index 93%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java
index 8398847f65..5e49465a25 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/PersonTemplateService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.model.Person;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java
similarity index 89%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java
index 65f5a6e78e..ff9657260a 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java
@@ -1,11 +1,11 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
-import org.baeldung.spring.data.couchbase.repos.StudentRepository;
+import com.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.repos.StudentRepository;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java
similarity index 75%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java
index f483ef0fb6..aa99a770cd 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
public interface StudentService {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java
similarity index 93%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java
index 8d1292b5e4..9110f68276 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase/service/StudentTemplateService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java
similarity index 85%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java
index b1857222c5..1120b7c55d 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/CampusRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/CampusRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.repos;
+package com.baeldung.spring.data.couchbase2b.repos;
import java.util.Set;
-import org.baeldung.spring.data.couchbase.model.Campus;
+import com.baeldung.spring.data.couchbase.model.Campus;
import org.springframework.data.couchbase.core.query.Dimensional;
import org.springframework.data.couchbase.core.query.View;
import org.springframework.data.geo.Distance;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java
similarity index 71%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java
index ef37106c6d..ec50dec471 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/PersonRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/PersonRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.repos;
+package com.baeldung.spring.data.couchbase2b.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.model.Person;
import org.springframework.data.repository.CrudRepository;
public interface PersonRepository extends CrudRepository {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java
similarity index 71%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java
index 0d790d2f39..3fd4a717f9 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/repos/StudentRepository.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/repos/StudentRepository.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.repos;
+package com.baeldung.spring.data.couchbase2b.repos;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.springframework.data.repository.CrudRepository;
public interface StudentRepository extends CrudRepository {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java
similarity index 75%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java
index 58f00dda25..567ffa2a7f 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.Set;
-import org.baeldung.spring.data.couchbase.model.Campus;
+import com.baeldung.spring.data.couchbase.model.Campus;
import org.springframework.data.geo.Distance;
import org.springframework.data.geo.Point;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java
similarity index 87%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java
index 586f5f0dc1..03e2dced1b 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java
@@ -1,11 +1,11 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
-import org.baeldung.spring.data.couchbase.model.Campus;
-import org.baeldung.spring.data.couchbase2b.repos.CampusRepository;
+import com.baeldung.spring.data.couchbase2b.repos.CampusRepository;
+import com.baeldung.spring.data.couchbase.model.Campus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Distance;
import org.springframework.data.geo.Point;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java
similarity index 74%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java
index c2c96ffb9c..7dc30ead11 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.model.Person;
public interface PersonService {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java
similarity index 88%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java
index fe0a9e48cd..af08bd4ca8 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java
@@ -1,11 +1,11 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
-import org.baeldung.spring.data.couchbase2b.repos.PersonRepository;
+import com.baeldung.spring.data.couchbase2b.repos.PersonRepository;
+import com.baeldung.spring.data.couchbase.model.Person;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java
similarity index 75%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java
index 5b83b403bb..3f318e1af1 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentService.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java
@@ -1,8 +1,8 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.model.Student;
public interface StudentService {
diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java
similarity index 88%
rename from persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java
rename to persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java
index 248d824081..53feaead10 100644
--- a/persistence-modules/spring-data-couchbase-2/src/main/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java
+++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java
@@ -1,11 +1,11 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Student;
-import org.baeldung.spring.data.couchbase2b.repos.StudentRepository;
+import com.baeldung.spring.data.couchbase2b.repos.StudentRepository;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java
similarity index 83%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java
index 5e20a98a1d..553520e6e6 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/SpringContextLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/SpringContextLiveTest.java
@@ -1,7 +1,7 @@
-package org.baeldung;
+package com.baeldung;
-import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
-import org.baeldung.spring.data.couchbase2b.MultiBucketIntegrationTestConfig;
+import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
+import com.baeldung.spring.data.couchbase2b.MultiBucketIntegrationTestConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
@@ -25,7 +25,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution
* {@code
* function (doc) {
* if (doc.location &&
- * doc._class == "org.baeldung.spring.data.couchbase.model.Campus") {
+ * doc._class == "com.baeldung.spring.data.couchbase.model.Campus") {
* emit([doc.location.x, doc.location.y], null);
* }
* }}
@@ -34,7 +34,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution
* 2.4.1- view 'all' with function:
* {@code
* function (doc, meta) {
- * if(doc._class == "org.baeldung.spring.data.couchbase.model.Campus") {
+ * if(doc._class == "com.baeldung.spring.data.couchbase.model.Campus") {
* emit(meta.id, null);
* }
* }}
@@ -42,7 +42,7 @@ import org.springframework.test.context.support.DependencyInjectionTestExecution
* 2.4.2- view 'byName' with function:
* {@code
* function (doc, meta) {
- * if(doc._class == "org.baeldung.spring.data.couchbase.model.Campus" &&
+ * if(doc._class == "com.baeldung.spring.data.couchbase.model.Campus" &&
* doc.name) {
* emit(doc.name, null);
* }
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java
similarity index 86%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java
index 0e2e8d5dd3..403c012194 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase;
+package com.baeldung.spring.data.couchbase;
import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java
similarity index 92%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java
index ce2daa92cd..df2802a15c 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase;
+package com.baeldung.spring.data.couchbase;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java
similarity index 62%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java
index 6f040c34db..6abb879236 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/IntegrationTestConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/IntegrationTestConfig.java
@@ -1,9 +1,9 @@
-package org.baeldung.spring.data.couchbase;
+package com.baeldung.spring.data.couchbase;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
-@ComponentScan(basePackages = "org.baeldung.spring.data.couchbase")
+@ComponentScan(basePackages = "com.baeldung.spring.data.couchbase")
public class IntegrationTestConfig {
}
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java
similarity index 93%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java
index a37e918101..5a2180f4b8 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/MyCouchbaseConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase;
+package com.baeldung.spring.data.couchbase;
import java.util.Arrays;
import java.util.List;
@@ -12,7 +12,7 @@ import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepos
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@Configuration
-@EnableCouchbaseRepositories(basePackages = { "org.baeldung.spring.data.couchbase" })
+@EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase" })
public class MyCouchbaseConfig extends AbstractCouchbaseConfiguration {
public static final List NODE_LIST = Arrays.asList("localhost");
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java
similarity index 85%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java
index b4a372487e..b989bb39d8 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase;
+package com.baeldung.spring.data.couchbase;
import org.springframework.data.couchbase.core.query.Consistency;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java
similarity index 87%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java
index 899c21691d..ee3716030f 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java
similarity index 95%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java
index 08d641dc2c..804bbdd2c8 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -7,9 +7,9 @@ import static org.junit.Assert.assertTrue;
import java.util.List;
-import org.baeldung.spring.data.couchbase.IntegrationTest;
-import org.baeldung.spring.data.couchbase.MyCouchbaseConfig;
-import org.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase.IntegrationTest;
+import com.baeldung.spring.data.couchbase.MyCouchbaseConfig;
+import com.baeldung.spring.data.couchbase.model.Person;
import org.joda.time.DateTime;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java
similarity index 87%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java
index 3bc99d28df..a665fd756d 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonTemplateServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java
similarity index 87%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java
index 162619db3e..9abf93b003 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java
similarity index 96%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java
index 6a18922007..c13b4930ca 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -9,9 +9,9 @@ import java.util.List;
import javax.validation.ConstraintViolationException;
-import org.baeldung.spring.data.couchbase.IntegrationTest;
-import org.baeldung.spring.data.couchbase.MyCouchbaseConfig;
-import org.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase.IntegrationTest;
+import com.baeldung.spring.data.couchbase.MyCouchbaseConfig;
+import com.baeldung.spring.data.couchbase.model.Student;
import org.joda.time.DateTime;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java
similarity index 87%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java
index c666e004af..92a4a23baf 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentTemplateServiceLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase.service;
+package com.baeldung.spring.data.couchbase.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java
similarity index 93%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java
index fe32305feb..488819aaf5 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java
@@ -1,9 +1,9 @@
-package org.baeldung.spring.data.couchbase2b;
+package com.baeldung.spring.data.couchbase2b;
import java.util.Arrays;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Campus;
+import com.baeldung.spring.data.couchbase.model.Campus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;
@@ -17,7 +17,7 @@ import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import com.couchbase.client.java.Bucket;
@Configuration
-@EnableCouchbaseRepositories(basePackages = { "org.baeldung.spring.data.couchbase2b" })
+@EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase2b" })
public class MultiBucketCouchbaseConfig extends AbstractCouchbaseConfiguration {
public static final List NODE_LIST = Arrays.asList("localhost");
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java
similarity index 64%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java
index 94a95b06bb..c082a0d77c 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketIntegrationTestConfig.java
@@ -1,10 +1,10 @@
-package org.baeldung.spring.data.couchbase2b;
+package com.baeldung.spring.data.couchbase2b;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
-@ComponentScan(basePackages = { "org.baeldung.spring.data.couchbase2b" })
+@ComponentScan(basePackages = { "com.baeldung.spring.data.couchbase2b" })
public class MultiBucketIntegrationTestConfig {
}
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java
similarity index 92%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java
index 3b406a851e..334af40866 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase2b;
+package com.baeldung.spring.data.couchbase2b;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java
similarity index 94%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java
index 5e7a12f292..e94c09e6cd 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -9,9 +9,9 @@ import java.util.Set;
import javax.annotation.PostConstruct;
-import org.baeldung.spring.data.couchbase.model.Campus;
-import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
-import org.baeldung.spring.data.couchbase2b.repos.CampusRepository;
+import com.baeldung.spring.data.couchbase.model.Campus;
+import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
+import com.baeldung.spring.data.couchbase2b.repos.CampusRepository;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Distance;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java
similarity index 95%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java
index 9543d8fe12..3f98c1950a 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -7,9 +7,9 @@ import static org.junit.Assert.assertTrue;
import java.util.List;
-import org.baeldung.spring.data.couchbase.model.Person;
-import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
-import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
+import com.baeldung.spring.data.couchbase.model.Person;
+import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
+import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
import org.joda.time.DateTime;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java
similarity index 96%
rename from persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java
rename to persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java
index 52b9113e8f..004258a37e 100644
--- a/persistence-modules/spring-data-couchbase-2/src/test/java/org/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java
+++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring.data.couchbase2b.service;
+package com.baeldung.spring.data.couchbase2b.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -9,9 +9,9 @@ import java.util.List;
import javax.validation.ConstraintViolationException;
-import org.baeldung.spring.data.couchbase.model.Student;
-import org.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
-import org.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
+import com.baeldung.spring.data.couchbase.model.Student;
+import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig;
+import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest;
import org.joda.time.DateTime;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/persistence-modules/spring-data-eclipselink/README.md b/persistence-modules/spring-data-eclipselink/README.md
index 3bad63d7ef..2056031c45 100644
--- a/persistence-modules/spring-data-eclipselink/README.md
+++ b/persistence-modules/spring-data-eclipselink/README.md
@@ -4,5 +4,5 @@ This module contains articles about Spring Data with EclipseLink.
### Relevant articles
-- [A Guide to EclipseLink with Spring](http://www.baeldung.com/spring-eclipselink)
+- [A Guide to EclipseLink with Spring](https://www.baeldung.com/spring-eclipselink)
- [Pessimistic Locking in JPA](https://www.baeldung.com/jpa-pessimistic-locking)
diff --git a/persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java
similarity index 95%
rename from persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java
index 4c69245f65..842c61ffbd 100644
--- a/persistence-modules/spring-data-eclipselink/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-elasticsearch/README.md b/persistence-modules/spring-data-elasticsearch/README.md
index 840db617f6..22126c2f00 100644
--- a/persistence-modules/spring-data-elasticsearch/README.md
+++ b/persistence-modules/spring-data-elasticsearch/README.md
@@ -1,11 +1,11 @@
## Spring Data Elasticsearch
### Relevant Articles:
-- [Introduction to Spring Data Elasticsearch](http://www.baeldung.com/spring-data-elasticsearch-tutorial)
-- [Elasticsearch Queries with Spring Data](http://www.baeldung.com/spring-data-elasticsearch-queries)
-- [Guide to Elasticsearch in Java](http://www.baeldung.com/elasticsearch-java)
-- [Geospatial Support in ElasticSearch](http://www.baeldung.com/elasticsearch-geo-spatial)
-- [A Simple Tagging Implementation with Elasticsearch](http://www.baeldung.com/elasticsearch-tagging)
+- [Introduction to Spring Data Elasticsearch](https://www.baeldung.com/spring-data-elasticsearch-tutorial)
+- [Elasticsearch Queries with Spring Data](https://www.baeldung.com/spring-data-elasticsearch-queries)
+- [Guide to Elasticsearch in Java](https://www.baeldung.com/elasticsearch-java)
+- [Geospatial Support in ElasticSearch](https://www.baeldung.com/elasticsearch-geo-spatial)
+- [A Simple Tagging Implementation with Elasticsearch](https://www.baeldung.com/elasticsearch-tagging)
### Build the Project with Tests Running
```
diff --git a/persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java
similarity index 96%
rename from persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java
rename to persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java
index c6f095eae9..c69deeb77c 100644
--- a/persistence-modules/spring-data-elasticsearch/src/test/java/org/baeldung/SpringContextManualTest.java
+++ b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/SpringContextManualTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-gemfire/README.md b/persistence-modules/spring-data-gemfire/README.md
index 78199e90d0..4eb28c1678 100644
--- a/persistence-modules/spring-data-gemfire/README.md
+++ b/persistence-modules/spring-data-gemfire/README.md
@@ -1,3 +1,3 @@
### Relevant articles
-- [A Guide to GemFire with Spring Data](http://www.baeldung.com/spring-data-gemfire)
+- [A Guide to GemFire with Spring Data](https://www.baeldung.com/spring-data-gemfire)
diff --git a/persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java
similarity index 96%
rename from persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java
index 3772e22137..53ab8800d9 100644
--- a/persistence-modules/spring-data-gemfire/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-gemfire/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-jpa-4/pom.xml b/persistence-modules/spring-data-jpa-4/pom.xml
index e0b441231e..8a476012c7 100644
--- a/persistence-modules/spring-data-jpa-4/pom.xml
+++ b/persistence-modules/spring-data-jpa-4/pom.xml
@@ -23,6 +23,16 @@
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+
+ mysql
+ mysql-connector-java
+
+
com.h2databaseh2
diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java
new file mode 100644
index 0000000000..5f05764e21
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/StoredProcedureApplication.java
@@ -0,0 +1,13 @@
+package com.baeldung.storedprocedure;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class StoredProcedureApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(StoredProcedureApplication.class, args);
+ }
+
+}
diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/controller/CarController.java b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/controller/CarController.java
new file mode 100644
index 0000000000..6aef600d01
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/controller/CarController.java
@@ -0,0 +1,47 @@
+package com.baeldung.storedprocedure.controller;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baeldung.storedprocedure.entity.Car;
+import com.baeldung.storedprocedure.service.CarService;
+
+@RestController
+public class CarController {
+ @Autowired
+ private CarService carService;
+
+ @GetMapping(path = "/modelcount")
+ public long getTotalCarsByModel(@RequestParam("model") String model) {
+ return carService.getTotalCarsByModel(model);
+ }
+
+ @GetMapping(path = "/modelcountP")
+ public long getTotalCarsByModelProcedureName(@RequestParam("model") String model) {
+ return carService.getTotalCarsByModelProcedureName(model);
+ }
+
+ @GetMapping(path = "/modelcountV")
+ public long getTotalCarsByModelVaue(@RequestParam("model") String model) {
+ return carService.getTotalCarsByModelValue(model);
+ }
+
+ @GetMapping(path = "/modelcountEx")
+ public long getTotalCarsByModelExplicit(@RequestParam("model") String model) {
+ return carService.getTotalCarsByModelExplicit(model);
+ }
+
+ @GetMapping(path = "/modelcountEn")
+ public long getTotalCarsByModelEntity(@RequestParam("model") String model) {
+ return carService.getTotalCarsByModelEntity(model);
+ }
+
+ @GetMapping(path = "/carsafteryear")
+ public List findCarsAfterYear(@RequestParam("year") Integer year) {
+ return carService.findCarsAfterYear(year);
+ }
+}
diff --git a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/entity/Car.java b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/entity/Car.java
similarity index 52%
rename from spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/entity/Car.java
rename to persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/entity/Car.java
index 3e850e391d..2817c25ff7 100644
--- a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/entity/Car.java
+++ b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/entity/Car.java
@@ -1,12 +1,19 @@
-package com.baeldung.jpa.entity;
+package com.baeldung.storedprocedure.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.NamedStoredProcedureQuery;
+import javax.persistence.StoredProcedureParameter;
+import javax.persistence.ParameterMode;
@Entity
+@NamedStoredProcedureQuery(name = "Car.getTotalCardsbyModelEntity", procedureName = "GET_TOTAL_CARS_BY_MODEL", parameters = {
+ @StoredProcedureParameter(mode = ParameterMode.IN, name = "model_in", type = String.class),
+ @StoredProcedureParameter(mode = ParameterMode.OUT, name = "count_out", type = Integer.class) })
+
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/repository/CarRepository.java b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java
similarity index 52%
rename from spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/repository/CarRepository.java
rename to persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java
index 6b3bf57feb..3d9428628e 100644
--- a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/repository/CarRepository.java
+++ b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/repository/CarRepository.java
@@ -1,4 +1,4 @@
-package com.baeldung.jpa.repository;
+package com.baeldung.storedprocedure.repository;
import java.util.List;
@@ -8,14 +8,26 @@ import org.springframework.data.jpa.repository.query.Procedure;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
-import com.baeldung.jpa.entity.Car;
+import com.baeldung.storedprocedure.entity.Car;
@Repository
public interface CarRepository extends JpaRepository {
+ @Procedure
+ int GET_TOTAL_CARS_BY_MODEL(String model);
+
+ @Procedure("GET_TOTAL_CARS_BY_MODEL")
+ int getTotalCarsByModel(String model);
+
@Procedure(procedureName = "GET_TOTAL_CARS_BY_MODEL")
- int getTotalCarsByModel(@Param("model_in") String model);
+ int getTotalCarsByModelProcedureName(String model);
+
+ @Procedure(value = "GET_TOTAL_CARS_BY_MODEL")
+ int getTotalCarsByModelValue(String model);
+ @Procedure(name = "Car.getTotalCardsbyModelEntity")
+ int getTotalCarsByModelEntiy(@Param("model_in") String model);
+
@Query(value = "CALL FIND_CARS_AFTER_YEAR(:year_in);", nativeQuery = true)
List findCarsAfterYear(@Param("year_in") Integer year_in);
diff --git a/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/service/CarService.java b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/service/CarService.java
new file mode 100644
index 0000000000..104f46e324
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-4/src/main/java/com/baeldung/storedprocedure/service/CarService.java
@@ -0,0 +1,39 @@
+package com.baeldung.storedprocedure.service;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baeldung.storedprocedure.entity.Car;
+import com.baeldung.storedprocedure.repository.CarRepository;
+
+@Service
+public class CarService {
+ @Autowired
+ private CarRepository carRepository;
+
+ public int getTotalCarsByModel(String model) {
+ return carRepository.getTotalCarsByModel(model);
+ }
+
+ public int getTotalCarsByModelProcedureName(String model) {
+ return carRepository.getTotalCarsByModelProcedureName(model);
+ }
+
+ public int getTotalCarsByModelValue(String model) {
+ return carRepository.getTotalCarsByModelValue(model);
+ }
+
+ public int getTotalCarsByModelExplicit(String model) {
+ return carRepository.GET_TOTAL_CARS_BY_MODEL(model);
+ }
+
+ public int getTotalCarsByModelEntity(String model) {
+ return carRepository.getTotalCarsByModelEntiy(model);
+ }
+
+ public List findCarsAfterYear(Integer year) {
+ return carRepository.findCarsAfterYear(year);
+ }
+}
diff --git a/persistence-modules/spring-data-jpa-4/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-4/src/main/resources/application.properties
index 72fc330767..d79c23e0c7 100644
--- a/persistence-modules/spring-data-jpa-4/src/main/resources/application.properties
+++ b/persistence-modules/spring-data-jpa-4/src/main/resources/application.properties
@@ -1 +1,5 @@
-spring.jpa.show-sql=true
\ No newline at end of file
+spring.jpa.show-sql=true
+#MySql
+spring.datasource.url=jdbc:mysql://localhost:3306/baeldung
+spring.datasource.username=baeldung
+spring.datasource.password=baeldung
\ No newline at end of file
diff --git a/spring-boot-modules/spring-boot-jpa/src/main/resources/car-mysql.sql b/persistence-modules/spring-data-jpa-4/src/main/resources/car-mysql.sql
similarity index 100%
rename from spring-boot-modules/spring-boot-jpa/src/main/resources/car-mysql.sql
rename to persistence-modules/spring-data-jpa-4/src/main/resources/car-mysql.sql
diff --git a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java
similarity index 94%
rename from persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java
index db7b156415..eaccf4acba 100644
--- a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java
similarity index 97%
rename from persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java
rename to persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java
index 4a36407884..f3697bf39f 100644
--- a/persistence-modules/spring-data-jpa/src/test/java/org/baeldung/SpringJpaContextIntegrationTest.java
+++ b/persistence-modules/spring-data-jpa/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-keyvalue/README.md b/persistence-modules/spring-data-keyvalue/README.md
index 9f53a11b2c..93cde8ce93 100644
--- a/persistence-modules/spring-data-keyvalue/README.md
+++ b/persistence-modules/spring-data-keyvalue/README.md
@@ -3,4 +3,4 @@
This module contains articles about Spring Data Key-Value
### Relevant Articles:
-- [A Guide to Spring Data Key Value](http://www.baeldung.com/spring-data-key-value)
+- [A Guide to Spring Data Key Value](https://www.baeldung.com/spring-data-key-value)
diff --git a/persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java
similarity index 95%
rename from persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java
index e6cc5c15af..aca177d1a7 100644
--- a/persistence-modules/spring-data-keyvalue/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-keyvalue/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-neo4j/README.md b/persistence-modules/spring-data-neo4j/README.md
index 03c9ed333d..dc54de0e31 100644
--- a/persistence-modules/spring-data-neo4j/README.md
+++ b/persistence-modules/spring-data-neo4j/README.md
@@ -1,8 +1,8 @@
## Spring Data Neo4j
### Relevant Articles:
-- [Introduction to Spring Data Neo4j](http://www.baeldung.com/spring-data-neo4j-intro)
-- [A Guide to Neo4J with Java](http://www.baeldung.com/java-neo4j)
+- [Introduction to Spring Data Neo4j](https://www.baeldung.com/spring-data-neo4j-intro)
+- [A Guide to Neo4J with Java](https://www.baeldung.com/java-neo4j)
### Build the Project with Tests Running
```
diff --git a/persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java
similarity index 96%
rename from persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java
index 5bf54fc0bd..7029905c49 100644
--- a/persistence-modules/spring-data-neo4j/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-neo4j/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-redis/README.md b/persistence-modules/spring-data-redis/README.md
index a20f5052f0..e4a528ae91 100644
--- a/persistence-modules/spring-data-redis/README.md
+++ b/persistence-modules/spring-data-redis/README.md
@@ -1,8 +1,8 @@
## Spring Data Redis
### Relevant Articles:
-- [Introduction to Spring Data Redis](http://www.baeldung.com/spring-data-redis-tutorial)
-- [PubSub Messaging with Spring Data Redis](http://www.baeldung.com/spring-data-redis-pub-sub)
+- [Introduction to Spring Data Redis](https://www.baeldung.com/spring-data-redis-tutorial)
+- [PubSub Messaging with Spring Data Redis](https://www.baeldung.com/spring-data-redis-pub-sub)
- [An Introduction to Spring Data Redis Reactive](https://www.baeldung.com/spring-data-redis-reactive)
### Build the Project with Tests Running
diff --git a/persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java
similarity index 95%
rename from persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java
index 6652345595..4df0cbd0ad 100644
--- a/persistence-modules/spring-data-redis/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-redis/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-data-solr/README.md b/persistence-modules/spring-data-solr/README.md
index c282fd2ce7..3d58d2d44c 100644
--- a/persistence-modules/spring-data-solr/README.md
+++ b/persistence-modules/spring-data-solr/README.md
@@ -3,4 +3,4 @@
This module contains articles about Spring Data with Solr.
### Relevant Articles:
-- [Introduction to Spring Data Solr](http://www.baeldung.com/spring-data-solr)
+- [Introduction to Spring Data Solr](https://www.baeldung.com/spring-data-solr)
diff --git a/persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java
similarity index 95%
rename from persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java
index 09bf0255a0..f445a550a3 100644
--- a/persistence-modules/spring-data-solr/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-data-solr/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-hibernate-3/README.md b/persistence-modules/spring-hibernate-3/README.md
index 898c6522a9..610d586f85 100644
--- a/persistence-modules/spring-hibernate-3/README.md
+++ b/persistence-modules/spring-hibernate-3/README.md
@@ -4,8 +4,8 @@ This module contains articles about Spring with Hibernate 3
### Relevant Articles:
-- [Hibernate 3 with Spring](http://www.baeldung.com/hibernate3-spring)
-- [HibernateException: No Hibernate Session Bound to Thread in Hibernate 3](http://www.baeldung.com/no-hibernate-session-bound-to-thread-exception)
+- [Hibernate 3 with Spring](https://www.baeldung.com/hibernate3-spring)
+- [HibernateException: No Hibernate Session Bound to Thread in Hibernate 3](https://www.baeldung.com/no-hibernate-session-bound-to-thread-exception)
### Quick Start
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/AbstractHibernateDao.java
similarity index 97%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/AbstractHibernateDao.java
index 0f8b132891..701c6c43c7 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/AbstractHibernateDao.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.io.Serializable;
import java.util.List;
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/EventDao.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/EventDao.java
similarity index 70%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/EventDao.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/EventDao.java
index 74da643f35..e6519d54c8 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/EventDao.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/EventDao.java
@@ -1,18 +1,18 @@
-package org.baeldung.persistence.dao;
-
-
-import org.baeldung.persistence.model.Event;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class EventDao extends AbstractHibernateDao implements IEventDao {
-
- public EventDao() {
- super();
-
- setClazz(Event.class);
- }
-
- // API
-
-}
+package com.baeldung.persistence.dao;
+
+
+import com.baeldung.persistence.model.Event;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class EventDao extends AbstractHibernateDao implements IEventDao {
+
+ public EventDao() {
+ super();
+
+ setClazz(Event.class);
+ }
+
+ // API
+
+}
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/FooDao.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/FooDao.java
similarity index 73%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/FooDao.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/FooDao.java
index 23de04169e..afcd958bc2 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/FooDao.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/FooDao.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.persistence.model.Foo;
import org.springframework.stereotype.Repository;
@Repository
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IEventDao.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IEventDao.java
new file mode 100644
index 0000000000..da2be1ce1e
--- /dev/null
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IEventDao.java
@@ -0,0 +1,8 @@
+package com.baeldung.persistence.dao;
+
+import com.baeldung.persistence.model.Event;
+
+
+public interface IEventDao extends IOperations {
+ //
+}
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IFooDao.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IFooDao.java
new file mode 100644
index 0000000000..f79883980a
--- /dev/null
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IFooDao.java
@@ -0,0 +1,7 @@
+package com.baeldung.persistence.dao;
+
+import com.baeldung.persistence.model.Foo;
+
+public interface IFooDao extends IOperations {
+ //
+}
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IOperations.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IOperations.java
similarity index 89%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IOperations.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IOperations.java
index 8c5a5e1aed..66f8008f27 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IOperations.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/dao/IOperations.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.io.Serializable;
import java.util.List;
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Event.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Event.java
similarity index 89%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Event.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Event.java
index 1d659ed75c..37a9758cd5 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Event.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Event.java
@@ -1,45 +1,45 @@
-package org.baeldung.persistence.model;
-
-import java.io.Serializable;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "EVENTS")
-public class Event implements Serializable {
-
- @Id
- @GeneratedValue
- private Long id;
-
- private String description;
-
- public Event() {
- }
-
-
- public Event(String description) {
- this.description = description;
- }
-
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
+package com.baeldung.persistence.model;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "EVENTS")
+public class Event implements Serializable {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String description;
+
+ public Event() {
+ }
+
+
+ public Event(String description) {
+ this.description = description;
+ }
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
}
\ No newline at end of file
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Foo.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Foo.java
similarity index 97%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Foo.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Foo.java
index 8e1dee33e8..9af3d07bed 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/model/Foo.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/model/Foo.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.model;
+package com.baeldung.persistence.model;
import java.io.Serializable;
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/EventService.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/EventService.java
similarity index 72%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/EventService.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/EventService.java
index 6171751cc5..bf9afed38b 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/EventService.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/EventService.java
@@ -1,27 +1,27 @@
-package org.baeldung.persistence.service;
-
-
-import org.baeldung.persistence.dao.IEventDao;
-import org.baeldung.persistence.model.Event;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-@Service
-@Transactional
-public class EventService {
-
- @Autowired
- private IEventDao dao;
-
- public EventService() {
- super();
- }
-
- // API
-
- public void create(final Event entity) {
- dao.create(entity);
- }
-
-}
+package com.baeldung.persistence.service;
+
+
+import com.baeldung.persistence.model.Event;
+import com.baeldung.persistence.dao.IEventDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class EventService {
+
+ @Autowired
+ private IEventDao dao;
+
+ public EventService() {
+ super();
+ }
+
+ // API
+
+ public void create(final Event entity) {
+ dao.create(entity);
+ }
+
+}
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/FooService.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/FooService.java
similarity index 75%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/FooService.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/FooService.java
index b07698c438..ad88062216 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/service/FooService.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/persistence/service/FooService.java
@@ -1,7 +1,7 @@
-package org.baeldung.persistence.service;
+package com.baeldung.persistence.service;
-import org.baeldung.persistence.dao.IFooDao;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.persistence.dao.IFooDao;
+import com.baeldung.persistence.model.Foo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfig.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfig.java
similarity index 94%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfig.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfig.java
index 03b9bfac33..29472174b2 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfig.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring;
+package com.baeldung.spring;
import java.util.Properties;
@@ -22,7 +22,7 @@ import com.google.common.base.Preconditions;
@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:persistence-h2.properties" })
-@ComponentScan({ "org.baeldung.persistence.dao", "org.baeldung.persistence.service" })
+@ComponentScan({ "com.baeldung.persistence.dao", "com.baeldung.persistence.service" })
public class PersistenceConfig {
@Autowired
@@ -36,7 +36,7 @@ public class PersistenceConfig {
public AnnotationSessionFactoryBean sessionFactory() {
final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
- sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model" });
+ sessionFactory.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfigHibernate3.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfigHibernate3.java
similarity index 97%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfigHibernate3.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfigHibernate3.java
index f38da21dc0..08ae9a76df 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceConfigHibernate3.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceConfigHibernate3.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring;
+package com.baeldung.spring;
import java.util.Properties;
@@ -24,7 +24,7 @@ import com.google.common.base.Preconditions;
@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:persistence-h2.properties" })
-@ComponentScan({ "org.baeldung.persistence.dao", "org.baeldung.persistence.service" })
+@ComponentScan({ "com.baeldung.persistence.dao", "com.baeldung.persistence.service" })
public class PersistenceConfigHibernate3 {
@Autowired
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceXmlConfig.java
similarity index 81%
rename from persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java
rename to persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceXmlConfig.java
index 5831d2745c..798fb740a7 100644
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java
+++ b/persistence-modules/spring-hibernate-3/src/main/java/com/baeldung/spring/PersistenceXmlConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring;
+package com.baeldung.spring;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
@@ -6,7 +6,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
// @Configuration
@EnableTransactionManagement
-@ComponentScan({ "org.baeldung.persistence.dao", "org.baeldung.persistence.service" })
+@ComponentScan({ "com.baeldung.persistence.dao", "com.baeldung.persistence.service" })
@ImportResource({ "classpath:persistenceConfig.xml" })
public class PersistenceXmlConfig {
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IEventDao.java b/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IEventDao.java
deleted file mode 100644
index f7be705905..0000000000
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IEventDao.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.baeldung.persistence.dao;
-
-import org.baeldung.persistence.model.Event;
-
-
-
-public interface IEventDao extends IOperations {
- //
-}
diff --git a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IFooDao.java
deleted file mode 100644
index 6a3bd95d71..0000000000
--- a/persistence-modules/spring-hibernate-3/src/main/java/org/baeldung/persistence/dao/IFooDao.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.baeldung.persistence.dao;
-
-import org.baeldung.persistence.model.Foo;
-
-public interface IFooDao extends IOperations {
- //
-}
diff --git a/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemo.cfg.xml b/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemo.cfg.xml
index 8a710cc559..896c080983 100644
--- a/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemo.cfg.xml
+++ b/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemo.cfg.xml
@@ -4,6 +4,6 @@
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
-
+
diff --git a/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemoPersistenceConfig.xml b/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemoPersistenceConfig.xml
index 263e902e7c..5f9e8c0107 100644
--- a/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemoPersistenceConfig.xml
+++ b/persistence-modules/spring-hibernate-3/src/main/resources/exceptionDemoPersistenceConfig.xml
@@ -16,7 +16,7 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
-
+
diff --git a/persistence-modules/spring-hibernate-3/src/main/resources/persistenceConfig.xml b/persistence-modules/spring-hibernate-3/src/main/resources/persistenceConfig.xml
index f39817383b..03d4d022e6 100644
--- a/persistence-modules/spring-hibernate-3/src/main/resources/persistenceConfig.xml
+++ b/persistence-modules/spring-hibernate-3/src/main/resources/persistenceConfig.xml
@@ -9,7 +9,7 @@
-
+ ${hibernate.hbm2ddl.auto}
diff --git a/persistence-modules/spring-hibernate-3/src/main/webapp/WEB-INF/web.xml b/persistence-modules/spring-hibernate-3/src/main/webapp/WEB-INF/web.xml
index ad56bf28c7..69ce04fe06 100644
--- a/persistence-modules/spring-hibernate-3/src/main/webapp/WEB-INF/web.xml
+++ b/persistence-modules/spring-hibernate-3/src/main/webapp/WEB-INF/web.xml
@@ -11,7 +11,7 @@
contextConfigLocation
- org.baeldung.spring
+ com.baeldung.springorg.springframework.web.context.ContextLoaderListener
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/SpringContextTest.java
similarity index 88%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/SpringContextTest.java
index 956d5279a3..8b352b490d 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,6 +1,6 @@
-package org.baeldung;
+package com.baeldung;
-import org.baeldung.spring.PersistenceConfig;
+import com.baeldung.spring.PersistenceConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
similarity index 91%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
index b6e4a5592f..7874f7c679 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
@@ -1,10 +1,9 @@
-package org.baeldung.persistence.service;
+package com.baeldung.persistence.service;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
-import org.baeldung.persistence.model.Foo;
-import org.baeldung.persistence.service.FooService;
-import org.baeldung.spring.PersistenceConfig;
+import com.baeldung.spring.PersistenceConfig;
+import com.baeldung.persistence.model.Foo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java
similarity index 90%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java
index 08032660c0..99dc7b42be 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen1MainIntegrationTest.java
@@ -1,7 +1,7 @@
-package org.baeldung.persistence.service;
+package com.baeldung.persistence.service;
-import org.baeldung.persistence.model.Event;
-import org.baeldung.spring.PersistenceConfigHibernate3;
+import com.baeldung.persistence.model.Event;
+import com.baeldung.spring.PersistenceConfigHibernate3;
import org.hamcrest.core.IsInstanceOf;
import org.hibernate.HibernateException;
import org.junit.Ignore;
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java
similarity index 91%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java
index 44cc6ca010..d3e475a244 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/HibernateExceptionScen2MainIntegrationTest.java
@@ -1,7 +1,7 @@
-package org.baeldung.persistence.service;
+package com.baeldung.persistence.service;
-import org.baeldung.persistence.model.Event;
-import org.baeldung.spring.PersistenceConfig;
+import com.baeldung.persistence.model.Event;
+import com.baeldung.spring.PersistenceConfig;
import org.hamcrest.core.IsInstanceOf;
import org.hibernate.HibernateException;
import org.junit.Ignore;
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java
similarity index 88%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java
index 2b29dcb7a9..d1c5cc04e6 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest.java
@@ -1,42 +1,42 @@
-package org.baeldung.persistence.service;
-
-import org.baeldung.persistence.model.Event;
-import org.baeldung.spring.PersistenceXmlConfig;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.orm.hibernate3.HibernateSystemException;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { PersistenceXmlConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest {
-
- @Autowired
- EventService service;
-
- @Rule
- public ExpectedException expectedEx = ExpectedException.none();
-
- @Test
- public final void whenEntityIsCreated_thenNoExceptions() {
- service.create(new Event("from Annotation Session Bean Factory"));
- }
-
- @Test
- @Ignore
- public final void whenNoTransBoundToSession_thenException() {
- expectedEx.expect(HibernateSystemException.class);
- expectedEx.expectMessage("No Hibernate Session bound to thread, "
- + "and configuration does not allow creation of "
- + "non-transactional one here");
- service.create(new Event("from Annotation Session Bean Factory"));
- }
-
-}
+package com.baeldung.persistence.service;
+
+import com.baeldung.persistence.model.Event;
+import com.baeldung.spring.PersistenceXmlConfig;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.orm.hibernate3.HibernateSystemException;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = { PersistenceXmlConfig.class }, loader = AnnotationConfigContextLoader.class)
+public class NoHibernateSessBoundUsingAnnoSessionBeanMainIntegrationTest {
+
+ @Autowired
+ EventService service;
+
+ @Rule
+ public ExpectedException expectedEx = ExpectedException.none();
+
+ @Test
+ public final void whenEntityIsCreated_thenNoExceptions() {
+ service.create(new Event("from Annotation Session Bean Factory"));
+ }
+
+ @Test
+ @Ignore
+ public final void whenNoTransBoundToSession_thenException() {
+ expectedEx.expect(HibernateSystemException.class);
+ expectedEx.expectMessage("No Hibernate Session bound to thread, "
+ + "and configuration does not allow creation of "
+ + "non-transactional one here");
+ service.create(new Event("from Annotation Session Bean Factory"));
+ }
+
+}
diff --git a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java
similarity index 86%
rename from persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java
rename to persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java
index 1bc6c07b18..1df6aa172c 100644
--- a/persistence-modules/spring-hibernate-3/src/test/java/org/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java
+++ b/persistence-modules/spring-hibernate-3/src/test/java/com/baeldung/persistence/service/NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest.java
@@ -1,39 +1,38 @@
-package org.baeldung.persistence.service;
-
-import org.baeldung.persistence.model.Event;
-import org.hibernate.HibernateException;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.orm.hibernate3.HibernateSystemException;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "classpath:exceptionDemoPersistenceConfig.xml" })
-public class NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest {
-
- @Autowired
- EventService service;
-
- @Rule
- public ExpectedException expectedEx = ExpectedException.none();
-
- @Test
- public final void whenEntityIsCreated_thenNoExceptions() {
- service.create(new Event("from local session bean factory"));
- }
-
- @Test
- @Ignore
- public final void whenNoTransBoundToSession_thenException() {
- expectedEx.expect(HibernateException.class);
- expectedEx.expectMessage("No Hibernate Session bound to thread, "
- + "and configuration does not allow creation "
- + "of non-transactional one here");
- service.create(new Event("from local session bean factory"));
- }
-}
+package com.baeldung.persistence.service;
+
+import com.baeldung.persistence.model.Event;
+import org.hibernate.HibernateException;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:exceptionDemoPersistenceConfig.xml" })
+public class NoHibernateSessBoundUsingLocalSessionBeanMainIntegrationTest {
+
+ @Autowired
+ EventService service;
+
+ @Rule
+ public ExpectedException expectedEx = ExpectedException.none();
+
+ @Test
+ public final void whenEntityIsCreated_thenNoExceptions() {
+ service.create(new Event("from local session bean factory"));
+ }
+
+ @Test
+ @Ignore
+ public final void whenNoTransBoundToSession_thenException() {
+ expectedEx.expect(HibernateException.class);
+ expectedEx.expectMessage("No Hibernate Session bound to thread, "
+ + "and configuration does not allow creation "
+ + "of non-transactional one here");
+ service.create(new Event("from local session bean factory"));
+ }
+}
diff --git a/persistence-modules/spring-hibernate-5/README.md b/persistence-modules/spring-hibernate-5/README.md
index a74600a47f..c3c8fa7b9f 100644
--- a/persistence-modules/spring-hibernate-5/README.md
+++ b/persistence-modules/spring-hibernate-5/README.md
@@ -4,11 +4,11 @@ This module contains articles about Hibernate 5 with Spring.
### Relevant articles
-- [Hibernate Many to Many Annotation Tutorial](http://www.baeldung.com/hibernate-many-to-many)
-- [Programmatic Transactions in the Spring TestContext Framework](http://www.baeldung.com/spring-test-programmatic-transactions)
-- [JPA Criteria Queries](http://www.baeldung.com/hibernate-criteria-queries)
-- [Introduction to Hibernate Search](http://www.baeldung.com/hibernate-search)
+- [Hibernate Many to Many Annotation Tutorial](https://www.baeldung.com/hibernate-many-to-many)
+- [Programmatic Transactions in the Spring TestContext Framework](https://www.baeldung.com/spring-test-programmatic-transactions)
+- [JPA Criteria Queries](https://www.baeldung.com/hibernate-criteria-queries)
+- [Introduction to Hibernate Search](https://www.baeldung.com/hibernate-search)
- [@DynamicUpdate with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-dynamicupdate)
-- [Hibernate Second-Level Cache](http://www.baeldung.com/hibernate-second-level-cache)
-- [Deleting Objects with Hibernate](http://www.baeldung.com/delete-with-hibernate)
-- [Spring, Hibernate and a JNDI Datasource](http://www.baeldung.com/spring-persistence-jpa-jndi-datasource)
+- [Hibernate Second-Level Cache](https://www.baeldung.com/hibernate-second-level-cache)
+- [Deleting Objects with Hibernate](https://www.baeldung.com/delete-with-hibernate)
+- [Spring, Hibernate and a JNDI Datasource](https://www.baeldung.com/spring-persistence-jpa-jndi-datasource)
diff --git a/persistence-modules/spring-hibernate-5/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/SpringContextTest.java
similarity index 96%
rename from persistence-modules/spring-hibernate-5/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/SpringContextTest.java
index 6815ebf304..e19965773e 100644
--- a/persistence-modules/spring-hibernate-5/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-hibernate4/README.md b/persistence-modules/spring-hibernate4/README.md
index c9e2b5abfc..cfa13ca3b0 100644
--- a/persistence-modules/spring-hibernate4/README.md
+++ b/persistence-modules/spring-hibernate4/README.md
@@ -3,13 +3,13 @@
This module contains articles about Spring with Hibernate 4
### Relevant Articles:
-- [Guide to Hibernate 4 with Spring](http://www.baeldung.com/hibernate-4-spring)
-- [Hibernate Pagination](http://www.baeldung.com/hibernate-pagination)
-- [Sorting with Hibernate](http://www.baeldung.com/hibernate-sort)
-- [Stored Procedures with Hibernate](http://www.baeldung.com/stored-procedures-with-hibernate-tutorial)
-- [Hibernate: save, persist, update, merge, saveOrUpdate](http://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate)
-- [Eager/Lazy Loading In Hibernate](http://www.baeldung.com/hibernate-lazy-eager-loading)
-- [The DAO with Spring and Hibernate](http://www.baeldung.com/persistence-layer-with-spring-and-hibernate)
+- [Guide to Hibernate 4 with Spring](https://www.baeldung.com/hibernate-4-spring)
+- [Hibernate Pagination](https://www.baeldung.com/hibernate-pagination)
+- [Sorting with Hibernate](https://www.baeldung.com/hibernate-sort)
+- [Stored Procedures with Hibernate](https://www.baeldung.com/stored-procedures-with-hibernate-tutorial)
+- [Hibernate: save, persist, update, merge, saveOrUpdate](https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate)
+- [Eager/Lazy Loading In Hibernate](https://www.baeldung.com/hibernate-lazy-eager-loading)
+- [The DAO with Spring and Hibernate](https://www.baeldung.com/persistence-layer-with-spring-and-hibernate)
- [Auditing with JPA, Hibernate, and Spring Data JPA](https://www.baeldung.com/database-auditing-jpa)
### Quick Start
diff --git a/persistence-modules/spring-hibernate4/src/test/java/org/baeldung/SpringContextTest.java b/persistence-modules/spring-hibernate4/src/test/java/com/baeldung/SpringContextTest.java
similarity index 96%
rename from persistence-modules/spring-hibernate4/src/test/java/org/baeldung/SpringContextTest.java
rename to persistence-modules/spring-hibernate4/src/test/java/com/baeldung/SpringContextTest.java
index 6815ebf304..e19965773e 100644
--- a/persistence-modules/spring-hibernate4/src/test/java/org/baeldung/SpringContextTest.java
+++ b/persistence-modules/spring-hibernate4/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md
index 489d990fc3..27a2fe8368 100644
--- a/persistence-modules/spring-jpa/README.md
+++ b/persistence-modules/spring-jpa/README.md
@@ -4,13 +4,13 @@
### Relevant Articles:
-- [The DAO with JPA and Spring](http://www.baeldung.com/spring-dao-jpa)
-- [JPA Pagination](http://www.baeldung.com/jpa-pagination)
-- [Sorting with JPA](http://www.baeldung.com/jpa-sort)
-- [Self-Contained Testing Using an In-Memory Database](http://www.baeldung.com/spring-jpa-test-in-memory-database)
-- [A Guide to Spring AbstractRoutingDatasource](http://www.baeldung.com/spring-abstract-routing-data-source)
-- [Obtaining Auto-generated Keys in Spring JDBC](http://www.baeldung.com/spring-jdbc-autogenerated-keys)
-- [Transactions with Spring 4 and JPA](http://www.baeldung.com/transaction-configuration-with-jpa-and-spring)
+- [The DAO with JPA and Spring](https://www.baeldung.com/spring-dao-jpa)
+- [JPA Pagination](https://www.baeldung.com/jpa-pagination)
+- [Sorting with JPA](https://www.baeldung.com/jpa-sort)
+- [Self-Contained Testing Using an In-Memory Database](https://www.baeldung.com/spring-jpa-test-in-memory-database)
+- [A Guide to Spring AbstractRoutingDatasource](https://www.baeldung.com/spring-abstract-routing-data-source)
+- [Obtaining Auto-generated Keys in Spring JDBC](https://www.baeldung.com/spring-jdbc-autogenerated-keys)
+- [Transactions with Spring 4 and JPA](https://www.baeldung.com/transaction-configuration-with-jpa-and-spring)
- [Use Criteria Queries in a Spring Data Application](https://www.baeldung.com/spring-data-criteria-queries)
- [Many-To-Many Relationship in JPA](https://www.baeldung.com/jpa-many-to-many)
- [Spring Persistence (Hibernate and JPA) with a JNDI datasource](https://www.baeldung.com/spring-persistence-hibernate-and-jpa-with-a-jndi-datasource/)
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/MyUtilityRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/MyUtilityRepository.java
similarity index 90%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/MyUtilityRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/MyUtilityRepository.java
index 5fe54b80d9..a23e9d9fe4 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/MyUtilityRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/MyUtilityRepository.java
@@ -1,4 +1,4 @@
-package org.baeldung.annotations;
+package com.baeldung.annotations;
import java.io.Serializable;
import java.util.Optional;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/Person.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/Person.java
similarity index 93%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/Person.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/Person.java
index 309a4f43e1..b881535e05 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/Person.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/Person.java
@@ -1,4 +1,4 @@
-package org.baeldung.annotations;
+package com.baeldung.annotations;
import java.util.Date;
@@ -8,7 +8,7 @@ import javax.persistence.NamedStoredProcedureQuery;
import javax.persistence.ParameterMode;
import javax.persistence.StoredProcedureParameter;
-import org.baeldung.persistence.multiple.model.user.User;
+import com.baeldung.persistence.multiple.model.user.User;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.Id;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/PersonRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/PersonRepository.java
similarity index 96%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/PersonRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/PersonRepository.java
index 58558860ff..77b7067f11 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/annotations/PersonRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/annotations/PersonRepository.java
@@ -1,4 +1,4 @@
-package org.baeldung.annotations;
+package com.baeldung.annotations;
import javax.persistence.LockModeType;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfig.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfig.java
similarity index 94%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfig.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfig.java
index ec0d4bca3c..4eda4d9274 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfig.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.config;
+package com.baeldung.config;
import java.util.Properties;
@@ -25,8 +25,8 @@ import com.google.common.base.Preconditions;
@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:persistence-h2.properties" })
-@ComponentScan({ "org.baeldung.persistence" })
-@EnableJpaRepositories(basePackages = "org.baeldung.persistence.dao")
+@ComponentScan({ "com.baeldung.persistence" })
+@EnableJpaRepositories(basePackages = "com.baeldung.persistence.dao")
public class PersistenceJPAConfig {
@Autowired
@@ -42,7 +42,7 @@ public class PersistenceJPAConfig {
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.persistence.model" });
+ em.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigXml.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java
similarity index 83%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigXml.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java
index 3df36e62ee..95224a4662 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigXml.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/PersistenceJPAConfigXml.java
@@ -1,4 +1,4 @@
-package org.baeldung.config;
+package com.baeldung.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
@@ -6,7 +6,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
// @Configuration
@EnableTransactionManagement
-@ComponentScan({ "org.baeldung.persistence" })
+@ComponentScan({ "com.baeldung.persistence" })
@ImportResource({ "classpath:jpaConfig.xml" })
public class PersistenceJPAConfigXml {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/SpringWebConfig.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/SpringWebConfig.java
similarity index 92%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/SpringWebConfig.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/config/SpringWebConfig.java
index 6afb271b10..475970d1f0 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/SpringWebConfig.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/SpringWebConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.config;
+package com.baeldung.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -10,7 +10,7 @@ import org.springframework.web.servlet.view.JstlView;
@EnableWebMvc
@Configuration
-@ComponentScan({ "org.baeldung.web" })
+@ComponentScan({ "com.baeldung.web" })
public class SpringWebConfig extends WebMvcConfigurerAdapter {
@Bean
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/StudentJpaConfig.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/StudentJpaConfig.java
similarity index 94%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/StudentJpaConfig.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/config/StudentJpaConfig.java
index 17047cbab2..08f37ea806 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/StudentJpaConfig.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/StudentJpaConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.config;
+package com.baeldung.config;
import java.util.Properties;
@@ -18,7 +18,7 @@ import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
-@EnableJpaRepositories(basePackages = "org.baeldung.inmemory.persistence.dao")
+@EnableJpaRepositories(basePackages = "com.baeldung.inmemory.persistence.dao")
@PropertySource("persistence-student.properties")
@EnableTransactionManagement
public class StudentJpaConfig {
@@ -41,7 +41,7 @@ public class StudentJpaConfig {
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.inmemory.persistence.model" });
+ em.setPackagesToScan(new String[] { "com.baeldung.inmemory.persistence.model" });
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
em.setJpaProperties(additionalProperties());
return em;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/WebInitializer.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/WebInitializer.java
similarity index 95%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/WebInitializer.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/config/WebInitializer.java
index cf6e69eb39..be81cca76b 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/WebInitializer.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/config/WebInitializer.java
@@ -1,4 +1,4 @@
-package org.baeldung.config;
+package com.baeldung.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDao.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDao.java
similarity index 95%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDao.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDao.java
index 9e19cf4ed9..e8117ba4fa 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDao.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDao.java
@@ -1,4 +1,4 @@
-package org.baeldung.dsrouting;
+package com.baeldung.dsrouting;
import javax.sql.DataSource;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDataSourceRouter.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDataSourceRouter.java
similarity index 91%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDataSourceRouter.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDataSourceRouter.java
index 997e461cde..a9f5d83b55 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDataSourceRouter.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDataSourceRouter.java
@@ -1,4 +1,4 @@
-package org.baeldung.dsrouting;
+package com.baeldung.dsrouting;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabase.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabase.java
similarity index 64%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabase.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabase.java
index 619b8707d8..d8d178a4d5 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabase.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabase.java
@@ -1,4 +1,4 @@
-package org.baeldung.dsrouting;
+package com.baeldung.dsrouting;
public enum ClientDatabase {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabaseContextHolder.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabaseContextHolder.java
similarity index 95%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabaseContextHolder.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabaseContextHolder.java
index c08559e877..ae5d16cad2 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientDatabaseContextHolder.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientDatabaseContextHolder.java
@@ -1,4 +1,4 @@
-package org.baeldung.dsrouting;
+package com.baeldung.dsrouting;
import org.springframework.util.Assert;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientService.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientService.java
similarity index 94%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientService.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientService.java
index 4b63c6333c..59b3d1660a 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/dsrouting/ClientService.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/dsrouting/ClientService.java
@@ -1,4 +1,4 @@
-package org.baeldung.dsrouting;
+package com.baeldung.dsrouting;
/**
* Service layer code for datasource routing example. Here, the service methods are responsible
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyStudentRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java
similarity index 68%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyStudentRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java
index a03b2950a0..a2aa0c5780 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyStudentRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyStudentRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.inmemory.persistence.dao;
+package com.baeldung.inmemory.persistence.dao;
-import org.baeldung.inmemory.persistence.model.ManyStudent;
+import com.baeldung.inmemory.persistence.model.ManyStudent;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyTagRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java
similarity index 57%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyTagRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java
index b7d991de32..63337f3cb9 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/ManyTagRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/ManyTagRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.inmemory.persistence.dao;
+package com.baeldung.inmemory.persistence.dao;
-import org.baeldung.inmemory.persistence.model.ManyTag;
+import com.baeldung.inmemory.persistence.model.ManyTag;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ManyTagRepository extends JpaRepository {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/StudentRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java
similarity index 90%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/StudentRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java
index ffe1a68558..8ac91fbf0c 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/dao/StudentRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/dao/StudentRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.inmemory.persistence.dao;
+package com.baeldung.inmemory.persistence.dao;
-import org.baeldung.inmemory.persistence.model.Student;
+import com.baeldung.inmemory.persistence.model.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java
similarity index 91%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java
index 1522744116..1fc186f4ce 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/KVTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import javax.persistence.Embeddable;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/LocationTag.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java
similarity index 92%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/LocationTag.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java
index 3acdbbe6fe..b12ad9fbd1 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/LocationTag.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/LocationTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import javax.persistence.Embeddable;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyStudent.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java
similarity index 94%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyStudent.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java
index 8343edc9cd..190740d582 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyStudent.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyStudent.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import javax.persistence.*;
import java.util.HashSet;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyTag.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java
similarity index 93%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyTag.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java
index e820506544..5af898f7df 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/ManyTag.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/ManyTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import javax.persistence.*;
import java.util.HashSet;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java
similarity index 90%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java
index 490ee0a18e..738b5d0b36 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/SkillTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import javax.persistence.Embeddable;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/Student.java
similarity index 96%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/Student.java
index 07aa3ef9ef..f0e824e165 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/inmemory/persistence/model/Student.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.inmemory.persistence.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/AbstractJpaDAO.java
similarity index 96%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/AbstractJpaDAO.java
index 13007d9fcc..b4827cc7e1 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/AbstractJpaDAO.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.io.Serializable;
import java.util.List;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepository.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepository.java
similarity index 76%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepository.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepository.java
index 114cf48c7c..48620f4ff1 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepository.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
-import org.baeldung.persistence.model.Book;
+import com.baeldung.persistence.model.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryCustom.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryCustom.java
similarity index 65%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryCustom.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryCustom.java
index b939907572..1b46d0ecc3 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryCustom.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryCustom.java
@@ -1,8 +1,8 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.util.List;
-import org.baeldung.persistence.model.Book;
+import com.baeldung.persistence.model.Book;
public interface BookRepositoryCustom {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryImpl.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryImpl.java
similarity index 93%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryImpl.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryImpl.java
index 6e9aa998d7..241a4c05aa 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookRepositoryImpl.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookRepositoryImpl.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.util.ArrayList;
import java.util.List;
@@ -10,7 +10,7 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
-import org.baeldung.persistence.model.Book;
+import com.baeldung.persistence.model.Book;
import org.springframework.stereotype.Repository;
@Repository
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookService.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookService.java
similarity index 71%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookService.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookService.java
index 88b769e9bf..f02f9daa11 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookService.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookService.java
@@ -1,12 +1,12 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
-import static org.baeldung.persistence.dao.BookSpecifications.hasAuthor;
-import static org.baeldung.persistence.dao.BookSpecifications.titleContains;
+import static com.baeldung.persistence.dao.BookSpecifications.hasAuthor;
+import static com.baeldung.persistence.dao.BookSpecifications.titleContains;
import static org.springframework.data.jpa.domain.Specifications.where;
import java.util.List;
-import org.baeldung.persistence.model.Book;
+import com.baeldung.persistence.model.Book;
import org.springframework.stereotype.Service;
@Service
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookSpecifications.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookSpecifications.java
similarity index 82%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookSpecifications.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookSpecifications.java
index ed9540060d..16646a5b4b 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/BookSpecifications.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/BookSpecifications.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
-import org.baeldung.persistence.model.Book;
+import com.baeldung.persistence.model.Book;
import org.springframework.data.jpa.domain.Specification;
public class BookSpecifications {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/FooDao.java
similarity index 73%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/FooDao.java
index 77978c5cf2..a4ed7d97b4 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/FooDao.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.persistence.model.Foo;
import org.springframework.stereotype.Repository;
@Repository
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/IFooDao.java
similarity index 74%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/IFooDao.java
index f5799522e2..8a4877aa79 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/dao/IFooDao.java
@@ -1,8 +1,8 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.persistence.dao;
import java.util.List;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.persistence.model.Foo;
public interface IFooDao {
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Bar.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Bar.java
similarity index 98%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Bar.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Bar.java
index b602e57562..5a88ecc6cf 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Bar.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Bar.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.model;
+package com.baeldung.persistence.model;
import java.io.Serializable;
import java.util.List;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Book.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Book.java
similarity index 92%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Book.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Book.java
index 754bd179d1..507043dd56 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Book.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Book.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.model;
+package com.baeldung.persistence.model;
import javax.persistence.Entity;
import javax.persistence.Id;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Foo.java
similarity index 98%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Foo.java
index 5294860311..7897bba4e4 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/model/Foo.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.model;
+package com.baeldung.persistence.model;
import org.hibernate.annotations.CacheConcurrencyStrategy;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/Possession.java
similarity index 96%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/Possession.java
index 7aff5f51d0..6ad6b8e603 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/Possession.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.multiple.model.user;
+package com.baeldung.persistence.multiple.model.user;
import javax.persistence.*;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/User.java
similarity index 96%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/User.java
index 6fb9de4a47..3ebb1e0156 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/multiple/model/user/User.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.multiple.model.user;
+package com.baeldung.persistence.multiple.model.user;
import javax.persistence.*;
import java.util.List;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/service/FooService.java
similarity index 81%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/service/FooService.java
index 6d1bb0adbe..ace36dd03b 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/persistence/service/FooService.java
@@ -1,9 +1,9 @@
-package org.baeldung.persistence.service;
+package com.baeldung.persistence.service;
import java.util.List;
-import org.baeldung.persistence.dao.IFooDao;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.persistence.dao.IFooDao;
+import com.baeldung.persistence.model.Foo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/sqlfiles/Country.java
similarity index 95%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/sqlfiles/Country.java
index 922f55cbf6..f2be33adfd 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/sqlfiles/Country.java
@@ -1,4 +1,4 @@
-package org.baeldung.sqlfiles;
+package com.baeldung.sqlfiles;
import static javax.persistence.GenerationType.IDENTITY;
diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/web/MainController.java b/persistence-modules/spring-jpa/src/main/java/com/baeldung/web/MainController.java
similarity index 85%
rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/web/MainController.java
rename to persistence-modules/spring-jpa/src/main/java/com/baeldung/web/MainController.java
index 6900482de8..c0d4743ae7 100644
--- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/web/MainController.java
+++ b/persistence-modules/spring-jpa/src/main/java/com/baeldung/web/MainController.java
@@ -1,6 +1,6 @@
-package org.baeldung.web;
+package com.baeldung.web;
-import org.baeldung.persistence.service.FooService;
+import com.baeldung.persistence.service.FooService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
diff --git a/persistence-modules/spring-jpa/src/main/resources/persistence.xml b/persistence-modules/spring-jpa/src/main/resources/persistence.xml
index 6304fa0a65..57687c306d 100644
--- a/persistence-modules/spring-jpa/src/main/resources/persistence.xml
+++ b/persistence-modules/spring-jpa/src/main/resources/persistence.xml
@@ -11,7 +11,7 @@
-
+
+
+
+
+
+
+ ${application.home:-.}/logs/application.log
+
+ %date [%level] from %logger in %thread - %message%n%xException
+
+
+
+
+
+ %coloredLevel %logger{15} - %message%n%xException{10}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/play-framework/async-http/conf/routes b/play-framework/async-http/conf/routes
new file mode 100644
index 0000000000..4f5162a8e7
--- /dev/null
+++ b/play-framework/async-http/conf/routes
@@ -0,0 +1,10 @@
+# Routes
+# This file defines all application routes (Higher priority routes first)
+# ~~~~
+
+# An example controller showing a sample home page
+GET / controllers.HomeController.index(request: Request)
+POST / controllers.HomeController.index(request: Request)
+
+# Map static resources from the /public folder to the /assets URL path
+GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
diff --git a/play-framework/async-http/project/build.properties b/play-framework/async-http/project/build.properties
new file mode 100644
index 0000000000..6adcdc753f
--- /dev/null
+++ b/play-framework/async-http/project/build.properties
@@ -0,0 +1 @@
+sbt.version=1.3.3
diff --git a/play-framework/async-http/project/plugins.sbt b/play-framework/async-http/project/plugins.sbt
new file mode 100644
index 0000000000..1c8c62a0d5
--- /dev/null
+++ b/play-framework/async-http/project/plugins.sbt
@@ -0,0 +1,7 @@
+// The Play plugin
+addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.3")
+
+// Defines scaffolding (found under .g8 folder)
+// http://www.foundweekends.org/giter8/scaffolding.html
+// sbt "g8Scaffold form"
+addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0")
diff --git a/play-framework/async-http/public/images/favicon.png b/play-framework/async-http/public/images/favicon.png
new file mode 100644
index 0000000000..c7d92d2ae4
Binary files /dev/null and b/play-framework/async-http/public/images/favicon.png differ
diff --git a/play-framework/async-http/public/javascripts/main.js b/play-framework/async-http/public/javascripts/main.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/play-framework/async-http/public/stylesheets/main.css b/play-framework/async-http/public/stylesheets/main.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/play-framework/async-http/test/controllers/HomeControllerTest.java b/play-framework/async-http/test/controllers/HomeControllerTest.java
new file mode 100644
index 0000000000..a232dbfde0
--- /dev/null
+++ b/play-framework/async-http/test/controllers/HomeControllerTest.java
@@ -0,0 +1,232 @@
+package controllers;
+
+import static java.time.temporal.ChronoUnit.SECONDS;
+import static org.junit.Assert.assertEquals;
+import static play.mvc.Http.Status.SERVICE_UNAVAILABLE;
+
+import akka.Done;
+import akka.actor.ActorSystem;
+import akka.stream.ActorMaterializer;
+import akka.stream.javadsl.Sink;
+import akka.util.ByteString;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.time.Duration;
+import java.util.OptionalInt;
+import java.util.concurrent.CompletionStage;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.IntStream;
+import org.apache.http.HttpStatus;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import play.Application;
+import play.inject.guice.GuiceApplicationBuilder;
+import play.libs.concurrent.Futures;
+import play.libs.ws.WSClient;
+import play.libs.ws.WSResponse;
+import play.libs.ws.ahc.AhcCurlRequestLogger;
+import play.mvc.Result;
+import play.mvc.Results;
+import play.test.WithServer;
+
+public class HomeControllerTest extends WithServer {
+
+ private final Logger log = LoggerFactory.getLogger(HomeControllerTest.class);
+ private String url;
+ private int port;
+
+ @Override
+ protected Application provideApplication() {
+ return new GuiceApplicationBuilder().build();
+ }
+
+ @Before
+ public void setup() {
+ OptionalInt optHttpsPort = testServer.getRunningHttpsPort();
+ if (optHttpsPort.isPresent()) {
+ port = optHttpsPort.getAsInt();
+ url = "https://localhost:" + port;
+ } else {
+ port = testServer.getRunningHttpPort()
+ .getAsInt();
+ url = "http://localhost:" + port;
+ }
+ }
+
+ @Test
+ public void givenASingleGetRequestWhenResponseThenBlockWithCompletableAndLog()
+ throws Exception {
+ WSClient ws = play.test.WSTestClient.newClient(port);
+ WSResponse wsResponse = ws.url(url)
+ .setRequestFilter(new AhcCurlRequestLogger())
+ .addHeader("key", "value")
+ .addQueryParameter("num", "" + 1)
+ .get()
+ .toCompletableFuture()
+ .get();
+
+ log.debug("Thread#" + Thread.currentThread()
+ .getId() + " Request complete: Response code = "
+ + wsResponse.getStatus()
+ + " | Response: " + wsResponse.getBody() + " | Current Time:"
+ + System.currentTimeMillis());
+ assert (HttpStatus.SC_OK == wsResponse.getStatus());
+ }
+
+ @Test
+ public void givenASingleGetRequestWhenResponseThenLog() throws Exception {
+ CountDownLatch latch = new CountDownLatch(1);
+ WSClient ws = play.test.WSTestClient.newClient(port);
+ ws.url(url)
+ .setRequestFilter(new AhcCurlRequestLogger())
+ .addHeader("key", "value")
+ .addQueryParameter("num", "" + 1)
+ .get()
+ .thenAccept(r -> {
+ log.debug("Thread#" + Thread.currentThread()
+ .getId() + " Request complete: Response code = "
+ + r.getStatus()
+ + " | Response: " + r.getBody() + " | Current Time:" + System.currentTimeMillis());
+ latch.countDown();
+ });
+
+ log.debug(
+ "Waiting for requests to be completed. Current Time: " + System.currentTimeMillis());
+ latch.await(5, TimeUnit.SECONDS );
+ assertEquals(0, latch.getCount());
+ log.debug("All requests have been completed. Exiting test.");
+ }
+
+ @Test
+ public void givenASinglePostRequestWhenResponseThenLog() throws Exception {
+ CountDownLatch latch = new CountDownLatch(1);
+ WSClient ws = play.test.WSTestClient.newClient(port);
+ ws.url(url)
+ .setContentType("application/x-www-form-urlencoded")
+ .post("key1=value1&key2=value2")
+ .thenAccept(r -> {
+ log.debug("Thread#" + Thread.currentThread()
+ .getId() + " Request complete: Response code = "
+ + r.getStatus()
+ + " | Response: " + r.getBody() + " | Current Time:" + System.currentTimeMillis());
+ latch.countDown();
+ });
+
+ log.debug(
+ "Waiting for requests to be completed. Current Time: " + System.currentTimeMillis());
+ latch.await(5, TimeUnit.SECONDS );
+ assertEquals(0, latch.getCount());
+ log.debug("All requests have been completed. Exiting test.");
+ }
+
+ @Test
+ public void givenMultipleRequestsWhenResponseThenLog() throws Exception {
+ CountDownLatch latch = new CountDownLatch(100);
+ WSClient ws = play.test.WSTestClient.newClient(port);
+ IntStream.range(0, 100)
+ .parallel()
+ .forEach(num ->
+ ws.url(url)
+ .setRequestFilter(new AhcCurlRequestLogger())
+ .addHeader("key", "value")
+ .addQueryParameter("num", "" + num)
+ .get()
+ .thenAccept(r -> {
+ log.debug(
+ "Thread#" + num + " Request complete: Response code = " + r.getStatus()
+ + " | Response: " + r.getBody() + " | Current Time:"
+ + System.currentTimeMillis());
+ latch.countDown();
+ })
+ );
+
+ log.debug(
+ "Waiting for requests to be completed. Current Time: " + System.currentTimeMillis());
+ latch.await(5, TimeUnit.SECONDS );
+ assertEquals(0, latch.getCount());
+ log.debug("All requests have been completed. Exiting test.");
+ }
+
+ @Test
+ public void givenLongResponseWhenTimeoutThenHandle() throws Exception {
+ CountDownLatch latch = new CountDownLatch(1);
+ WSClient ws = play.test.WSTestClient.newClient(port);
+ Futures futures = app.injector()
+ .instanceOf(Futures.class);
+ CompletionStage f = futures.timeout(
+ ws.url(url)
+ .setRequestTimeout(Duration.of(1, SECONDS))
+ .get()
+ .thenApply(result -> {
+ try {
+ Thread.sleep(2000L);
+ return Results.ok();
+ } catch (InterruptedException e) {
+ return Results.status(
+ SERVICE_UNAVAILABLE);
+ }
+ }), 1L, TimeUnit.SECONDS
+ );
+ CompletionStage
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ ${spring-boot.version}
+ org.hamcresthamcrest-core
diff --git a/spring-cloud/spring-cloud-zookeeper/Greeting/src/test/baeldung/SpringContextTest.java b/spring-cloud/spring-cloud-zookeeper/Greeting/src/test/java/com/baeldung/SpringContextTest.java
similarity index 81%
rename from spring-cloud/spring-cloud-zookeeper/Greeting/src/test/baeldung/SpringContextTest.java
rename to spring-cloud/spring-cloud-zookeeper/Greeting/src/test/java/com/baeldung/SpringContextTest.java
index b45e7b9889..f7325e425f 100644
--- a/spring-cloud/spring-cloud-zookeeper/Greeting/src/test/baeldung/SpringContextTest.java
+++ b/spring-cloud/spring-cloud-zookeeper/Greeting/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,12 +1,11 @@
-package org.baeldung;
+package com.baeldung;
+import com.baeldung.spring.cloud.greeting.GreetingApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
-import com.baeldung.spring.cloud.ribbon.client.ServerLocationApp;
-
@RunWith(SpringRunner.class)
@SpringBootTest(classes = GreetingApplication.class)
public class SpringContextTest {
diff --git a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java
index e589e27d46..b0e4f7e313 100644
--- a/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java
+++ b/spring-cloud/spring-cloud-zuul/spring-zuul-post-filter/src/main/java/com/baeldung/filters/ResponseLogFilter.java
@@ -12,6 +12,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.POST_TYPE;
+import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
@Component
public class ResponseLogFilter extends ZuulFilter {
@@ -49,8 +50,8 @@ public class ResponseLogFilter extends ZuulFilter {
context.setResponseBody(responseData);
}
- catch (Throwable e) {
- e.printStackTrace();
+ catch (Exception e) {
+ throw new ZuulException(e, INTERNAL_SERVER_ERROR.value(), e.getMessage());
}
return null;
diff --git a/spring-core-3/pom.xml b/spring-core-3/pom.xml
index cd82f23320..205259e8e4 100644
--- a/spring-core-3/pom.xml
+++ b/spring-core-3/pom.xml
@@ -1,72 +1,88 @@
-
-
- 4.0.0
- spring-core-3
- spring-core-3
-
-
- com.baeldung
- parent-spring-5
- 0.0.1-SNAPSHOT
- ../parent-spring-5
-
-
-
-
- org.springframework
- spring-beans
- ${spring.version}
-
-
- org.springframework
- spring-context
- ${spring.version}
-
-
- org.springframework
- spring-core
- ${spring.version}
-
-
- javax.annotation
- javax.annotation-api
- ${annotation-api.version}
-
-
- org.springframework
- spring-test
- ${spring.version}
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- ${junit-jupiter.version}
- test
-
-
- org.junit.jupiter
- junit-jupiter-api
- ${junit-jupiter.version}
- test
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven.surefire.version}
-
-
-
-
-
- 2.22.1
- 1.3.2
-
-
+
+
+ 4.0.0
+ spring-core-3
+ spring-core-3
+
+
+ com.baeldung
+ parent-spring-5
+ 0.0.1-SNAPSHOT
+ ../parent-spring-5
+
+
+
+
+ org.springframework
+ spring-beans
+ ${spring.version}
+
+
+ org.springframework
+ spring-tx
+ ${spring.version}
+
+
+ org.springframework
+ spring-jdbc
+ ${spring.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${spring.boot.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-core
+ ${spring.version}
+
+
+ javax.annotation
+ javax.annotation-api
+ ${annotation-api.version}
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit-jupiter.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit-jupiter.version}
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven.surefire.version}
+
+
+
+
+
+ 2.22.1
+ 1.3.2
+ 2.2.2.RELEASE
+
+
\ No newline at end of file
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java
new file mode 100644
index 0000000000..8f0134d83c
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Application.java
@@ -0,0 +1,19 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+public class Application {
+
+ @SuppressWarnings("resource")
+ public static void main(String[] args) {
+
+ ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
+
+ Foo foo = context.getBean(Foo.class);
+ Bar bar = context.getBean(Bar.class, "Some name");
+
+ System.out.println(foo);
+ System.out.println("Bar's name: " + bar.getName());
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java
new file mode 100644
index 0000000000..626947cfd5
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java
@@ -0,0 +1,9 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan(basePackageClasses = ApplicationConfig.class)
+public class ApplicationConfig {
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java
new file mode 100644
index 0000000000..8bd742c481
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Bar.java
@@ -0,0 +1,20 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Component
+@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+public class Bar {
+
+ private String name;
+
+ public Bar(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java
new file mode 100644
index 0000000000..5edba6c50d
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/factory/Foo.java
@@ -0,0 +1,7 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class Foo {
+}
diff --git a/intelliJ/remote-debugging/src/main/java/hello/Application.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java
similarity index 60%
rename from intelliJ/remote-debugging/src/main/java/hello/Application.java
rename to spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java
index 73b55f933b..d00f51ec96 100644
--- a/intelliJ/remote-debugging/src/main/java/hello/Application.java
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Application.java
@@ -1,14 +1,12 @@
-package hello;
+package com.baeldung.spring.patterns.proxy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
-@EnableScheduling
public class Application {
public static void main(String[] args) {
- SpringApplication.run(Application.class);
+ SpringApplication.run(Application.class, args);
}
}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java
new file mode 100644
index 0000000000..112396e232
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/Book.java
@@ -0,0 +1,18 @@
+package com.baeldung.spring.patterns.proxy;
+
+public class Book {
+
+ private String author;
+
+ public Book(String author) {
+ this.author = author;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java
new file mode 100644
index 0000000000..ab192826b8
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookController.java
@@ -0,0 +1,18 @@
+package com.baeldung.spring.patterns.proxy;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class BookController {
+
+ @Autowired
+ private BookManager manager;
+
+ @PostMapping("/book")
+ public Book create(@RequestParam String author) {
+ return manager.create(author);
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java
new file mode 100644
index 0000000000..d82218e404
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookManager.java
@@ -0,0 +1,18 @@
+package com.baeldung.spring.patterns.proxy;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+public class BookManager {
+
+ @Autowired
+ private BookRepository repository;
+
+ @Transactional
+ public Book create(String author) {
+ System.out.println(repository.getClass().getName());
+ return repository.create(author);
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java
new file mode 100644
index 0000000000..b100bc0a61
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/proxy/BookRepository.java
@@ -0,0 +1,11 @@
+package com.baeldung.spring.patterns.proxy;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class BookRepository {
+
+ public Book create(String author) {
+ return new Book(author);
+ }
+}
diff --git a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/SpringBootJpaApplication.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java
similarity index 59%
rename from spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/SpringBootJpaApplication.java
rename to spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java
index f7253c4b8d..5d7545790a 100644
--- a/spring-boot-modules/spring-boot-jpa/src/main/java/com/baeldung/jpa/SpringBootJpaApplication.java
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Application.java
@@ -1,13 +1,12 @@
-package com.baeldung.jpa;
+package com.baeldung.spring.patterns.singleton;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-public class SpringBootJpaApplication {
+public class Application {
public static void main(String[] args) {
- SpringApplication.run(SpringBootJpaApplication.class, args);
+ SpringApplication.run(Application.class, args);
}
-
}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java
new file mode 100644
index 0000000000..31d9d83683
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/Book.java
@@ -0,0 +1,4 @@
+package com.baeldung.spring.patterns.singleton;
+
+public class Book {
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java
new file mode 100644
index 0000000000..aa4bdb8371
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookController.java
@@ -0,0 +1,19 @@
+package com.baeldung.spring.patterns.singleton;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class BookController {
+
+ @Autowired
+ private BookRepository repository;
+
+ @GetMapping("/book/{id}")
+ public Book findById(@PathVariable long id) {
+ System.out.println(repository);
+ return repository.findById(id).get();
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java
new file mode 100644
index 0000000000..3fde153f31
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/BookRepository.java
@@ -0,0 +1,17 @@
+package com.baeldung.spring.patterns.singleton;
+
+import java.util.Optional;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class BookRepository {
+
+ public long count() {
+ return 1;
+ }
+
+ public Optional findById(long id) {
+ return Optional.of(new Book());
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java
new file mode 100644
index 0000000000..76e273e2fb
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/singleton/LibraryController.java
@@ -0,0 +1,18 @@
+package com.baeldung.spring.patterns.singleton;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class LibraryController {
+
+ @Autowired
+ private BookRepository repository;
+
+ @GetMapping("/count")
+ public Long findCount() {
+ System.out.println(repository);
+ return repository.count();
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java
new file mode 100644
index 0000000000..d601f01c67
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/Book.java
@@ -0,0 +1,32 @@
+package com.baeldung.spring.patterns.template;
+
+public class Book {
+
+ private long id;
+ private String title;
+ private String author;
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+}
diff --git a/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java
new file mode 100644
index 0000000000..3fe7bb8e59
--- /dev/null
+++ b/spring-core-3/src/main/java/com/baeldung/spring/patterns/template/BookRowMapper.java
@@ -0,0 +1,21 @@
+package com.baeldung.spring.patterns.template;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.springframework.jdbc.core.RowMapper;
+
+public class BookRowMapper implements RowMapper {
+
+ @Override
+ public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
+
+ Book book = new Book();
+
+ book.setId(rs.getLong("id"));
+ book.setTitle(rs.getString("title"));
+ book.setAuthor(rs.getString("author"));
+
+ return book;
+ }
+}
diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java
new file mode 100644
index 0000000000..66e01f261f
--- /dev/null
+++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextUnitTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.spring.patterns.factory;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+public class AnnotationConfigApplicationContextUnitTest {
+
+ @Test
+ @SuppressWarnings("resource")
+ public void whenGetSimpleBean_thenReturnConstructedBean() {
+
+ ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
+
+ Foo foo = context.getBean(Foo.class);
+
+ assertNotNull(foo);
+ }
+
+ @Test
+ @SuppressWarnings("resource")
+ public void whenGetPrototypeBean_thenReturnConstructedBean() {
+
+ String expectedName = "Some name";
+ ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
+
+ Bar bar = context.getBean(Bar.class, expectedName);
+
+ assertNotNull(bar);
+ assertThat(bar.getName(), is(expectedName));
+ }
+}
diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java
new file mode 100644
index 0000000000..626947cfd5
--- /dev/null
+++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java
@@ -0,0 +1,9 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan(basePackageClasses = ApplicationConfig.class)
+public class ApplicationConfig {
+}
diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java
new file mode 100644
index 0000000000..e2f825aab3
--- /dev/null
+++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java
@@ -0,0 +1,20 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Component
+@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+public class Bar {
+
+ private String name;
+
+ public Bar(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
\ No newline at end of file
diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java
new file mode 100644
index 0000000000..bb9988317e
--- /dev/null
+++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ClassPathXmlApplicationContextUnitTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.spring.patterns.factory;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class ClassPathXmlApplicationContextUnitTest {
+
+ @Test
+ @SuppressWarnings("resource")
+ public void givenXmlConfiguration_whenGetSimpleBean_thenReturnConstructedBean() {
+
+ ApplicationContext context = new ClassPathXmlApplicationContext("patterns-context.xml");
+
+ Foo foo = context.getBean(Foo.class);
+
+ assertNotNull(foo);
+ }
+
+ @Test
+ @SuppressWarnings("resource")
+ public void givenXmlConfiguration_whenGetPrototypeBean_thenReturnConstructedBean() {
+
+ String expectedName = "Some name";
+ ApplicationContext context = new ClassPathXmlApplicationContext("patterns-context.xml");
+
+ Bar bar = context.getBean(Bar.class, expectedName);
+
+ assertNotNull(bar);
+ assertThat(bar.getName(), is(expectedName));
+ }
+}
diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java
new file mode 100644
index 0000000000..5edba6c50d
--- /dev/null
+++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java
@@ -0,0 +1,7 @@
+package com.baeldung.spring.patterns.factory;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class Foo {
+}
diff --git a/spring-core-3/src/test/resources/patterns-context.xml b/spring-core-3/src/test/resources/patterns-context.xml
new file mode 100644
index 0000000000..106cde79a0
--- /dev/null
+++ b/spring-core-3/src/test/resources/patterns-context.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-core-3/static-value-injection/README.md b/spring-core-3/static-value-injection/README.md
new file mode 100644
index 0000000000..06dfa29f80
--- /dev/null
+++ b/spring-core-3/static-value-injection/README.md
@@ -0,0 +1,22 @@
+# Inject a value to a static field
+
+## How to run
+```sh
+mvn clean install
+mvn spring-boot:run
+```
+
+## Request
+
+**GET**
+http://localhost:8080/properties
+
+
+## Response
+```json
+[
+ "Inject a value to a static field",
+ "Inject a value to a static field",
+ null
+]
+```
diff --git a/spring-core-3/static-value-injection/pom.xml b/spring-core-3/static-value-injection/pom.xml
new file mode 100644
index 0000000000..aa45fde886
--- /dev/null
+++ b/spring-core-3/static-value-injection/pom.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.4.RELEASE
+
+
+ com.baeldung
+ static.value.injection
+ 0.0.1-SNAPSHOT
+ static.value.injection
+ Demo project for Spring Boot
+
+
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/spring-core-3/static-value-injection/src/main/java/com/baeldung/Application.java b/spring-core-3/static-value-injection/src/main/java/com/baeldung/Application.java
new file mode 100644
index 0000000000..c1875216b5
--- /dev/null
+++ b/spring-core-3/static-value-injection/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;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/spring-core-3/static-value-injection/src/main/java/com/baeldung/controller/PropertyController.java b/spring-core-3/static-value-injection/src/main/java/com/baeldung/controller/PropertyController.java
new file mode 100644
index 0000000000..03a2518117
--- /dev/null
+++ b/spring-core-3/static-value-injection/src/main/java/com/baeldung/controller/PropertyController.java
@@ -0,0 +1,31 @@
+package com.baeldung.controller;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.List;
+
+@RestController
+public class PropertyController {
+
+ @Value("${name}")
+ private String name;
+
+ @Value("${name}")
+ private static String NAME_NULL;
+
+ private static String NAME_STATIC;
+
+ @Value("${name}")
+ public void setNameStatic(String name){
+ PropertyController.NAME_STATIC = name;
+ }
+
+ @GetMapping("/properties")
+ public List getProperties(){
+ return Arrays.asList(this.name, NAME_STATIC, NAME_NULL) ;
+ }
+}
diff --git a/spring-core-3/static-value-injection/src/main/resources/application.properties b/spring-core-3/static-value-injection/src/main/resources/application.properties
new file mode 100644
index 0000000000..828fa9cd2a
--- /dev/null
+++ b/spring-core-3/static-value-injection/src/main/resources/application.properties
@@ -0,0 +1 @@
+name = Inject a value to a static field
diff --git a/spring-boot-modules/spring-boot-jpa/src/test/java/com/baeldung/jpa/SpringBootJpaApplicationTests.java b/spring-core-3/static-value-injection/src/test/java/com/baeldung/ApplicationTests.java
similarity index 52%
rename from spring-boot-modules/spring-boot-jpa/src/test/java/com/baeldung/jpa/SpringBootJpaApplicationTests.java
rename to spring-core-3/static-value-injection/src/test/java/com/baeldung/ApplicationTests.java
index d1d6a4bb9f..4ad83bc539 100644
--- a/spring-boot-modules/spring-boot-jpa/src/test/java/com/baeldung/jpa/SpringBootJpaApplicationTests.java
+++ b/spring-core-3/static-value-injection/src/test/java/com/baeldung/ApplicationTests.java
@@ -1,13 +1,13 @@
-package com.baeldung.jpa;
+package com.baeldung;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
-class SpringBootJpaApplicationTests {
+class ApplicationTests {
- @Test
- void contextLoads() {
- }
+ @Test
+ void contextLoads() {
+ }
}
diff --git a/spring-ejb/ejb-beans/pom.xml b/spring-ejb/ejb-beans/pom.xml
index b8978a0cc3..eecf8c1d23 100644
--- a/spring-ejb/ejb-beans/pom.xml
+++ b/spring-ejb/ejb-beans/pom.xml
@@ -37,6 +37,42 @@
tomee-embedded${tomee-embedded.version}
+
+ org.springframework
+ spring-context
+ ${springframework.version}
+
+
+
+ javax.ejb
+ javax.ejb-api
+ ${javax.ejb-api.version}
+ provided
+
+
+
+ org.springframework
+ spring-jms
+ ${springframework.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+
+ org.apache.activemq
+ activemq-broker
+ ${activemq.broker.version}
+
+
+ org.apache.activemq.tooling
+ activemq-junit
+ ${activemq.junit.version}
+ test
+ org.jboss.arquillian.junitarquillian-junit-container
@@ -81,6 +117,10 @@
1.7.53.1.21.0.0.CR4
+ 3.2
+ 5.2.3.RELEASE
+ 5.10.2
+ 5.13.1
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java
new file mode 100644
index 0000000000..f7f43244d5
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java
@@ -0,0 +1,63 @@
+package com.baeldung.ejbspringcomparison.ejb.messagedriven;
+
+import javax.annotation.Resource;
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.DeliveryMode;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+
+@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destination", propertyValue = "myQueue"), @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") })
+public class RecieverMDB implements MessageListener {
+
+ @Resource
+ private ConnectionFactory connectionFactory;
+
+ @Resource(name = "ackQueue")
+ private Queue ackQueue;
+
+ public void onMessage(Message message) {
+ try {
+
+ TextMessage textMessage = (TextMessage) message;
+ String producerPing = textMessage.getText();
+
+ if (producerPing.equals("marco")) {
+ acknowledge("polo");
+ }
+ } catch (JMSException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ private void acknowledge(String text) throws JMSException {
+
+ Connection connection = null;
+ Session session = null;
+
+ try {
+ connection = connectionFactory.createConnection();
+ connection.start();
+
+ session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ MessageProducer ackSender = session.createProducer(ackQueue);
+ ackSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
+ TextMessage message = session.createTextMessage(text);
+
+ ackSender.send(message);
+ } finally {
+ session.close();
+ connection.close();
+ }
+ }
+
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java
new file mode 100644
index 0000000000..6873a717a9
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java
@@ -0,0 +1,23 @@
+package com.baeldung.ejbspringcomparison.ejb.singleton;
+
+import javax.ejb.Singleton;
+
+@Singleton
+public class CounterEJB implements CounterEJBRemote {
+
+ private int count = 1;
+ private String name;
+
+ public int count() {
+ return count++;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
\ No newline at end of file
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java
new file mode 100644
index 0000000000..ed02cfed4c
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java
@@ -0,0 +1,10 @@
+package com.baeldung.ejbspringcomparison.ejb.singleton;
+
+import javax.ejb.Remote;
+
+@Remote
+public interface CounterEJBRemote {
+ int count();
+ String getName();
+ void setName(String name);
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java
new file mode 100644
index 0000000000..e01e53add1
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java
@@ -0,0 +1,32 @@
+package com.baeldung.ejbspringcomparison.ejb.stateful;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.ejb.Stateful;
+
+@Stateful
+public class ShoppingCartEJB implements ShoppingCartEJBRemote {
+ private String name;
+ private List shoppingCart;
+
+ public ShoppingCartEJB() {
+ shoppingCart = new ArrayList();
+ }
+
+ public void addItem(String item) {
+ shoppingCart.add(item);
+ }
+
+ public List getItems() {
+ return shoppingCart;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java
new file mode 100644
index 0000000000..cea9cc3ad9
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java
@@ -0,0 +1,17 @@
+package com.baeldung.ejbspringcomparison.ejb.stateful;
+
+import java.util.List;
+
+import javax.ejb.Remote;
+
+@Remote
+public interface ShoppingCartEJBRemote {
+
+ void addItem(String item);
+
+ List getItems();
+
+ void setName(String name);
+
+ String getName();
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java
new file mode 100644
index 0000000000..7609b17675
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java
@@ -0,0 +1,25 @@
+package com.baeldung.ejbspringcomparison.ejb.stateless;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.ejb.Stateless;
+
+@Stateless
+public class FinderEJB implements FinderEJBRemote {
+
+ private Map alphabet;
+
+ public FinderEJB() {
+ alphabet = new HashMap();
+ alphabet.put("A", "Apple");
+ alphabet.put("B", "Ball");
+ alphabet.put("C", "Cat");
+ alphabet.put("D", "Dog");
+ }
+
+ public String search(String keyword) {
+ return alphabet.get(keyword);
+ }
+
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java
new file mode 100644
index 0000000000..0354eff2b8
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java
@@ -0,0 +1,9 @@
+package com.baeldung.ejbspringcomparison.ejb.stateless;
+
+import javax.ejb.Remote;
+
+@Remote
+public interface FinderEJBRemote {
+
+ String search(String keyword);
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java
new file mode 100644
index 0000000000..8d6114d1c5
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java
@@ -0,0 +1,36 @@
+package com.baeldung.ejbspringcomparison.spring.config;
+
+import javax.jms.ConnectionFactory;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jms.annotation.EnableJms;
+import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
+import org.springframework.jms.core.JmsTemplate;
+
+@Configuration
+@ComponentScan(basePackages = "com.baeldung.ejbspringcomparison.spring")
+@EnableJms
+public class ApplicationConfig {
+
+ @Bean
+ public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
+ DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
+ factory.setConnectionFactory(connectionFactory());
+ return factory;
+ }
+
+ @Bean
+ public ConnectionFactory connectionFactory() {
+ return new ActiveMQConnectionFactory("tcp://localhost:61616");
+ }
+
+ @Bean
+ public JmsTemplate jmsTemplate() {
+ JmsTemplate template = new JmsTemplate(connectionFactory());
+ template.setConnectionFactory(connectionFactory());
+ return template;
+ }
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java
new file mode 100644
index 0000000000..683ae7f51b
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java
@@ -0,0 +1,19 @@
+package com.baeldung.ejbspringcomparison.spring.messagedriven;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.stereotype.Component;
+
+@Component
+public class Producer {
+ @Autowired
+ private JmsTemplate jmsTemplate;
+
+ public void sendMessageToDefaultDestination(final String message) {
+ jmsTemplate.convertAndSend("myQueue", message);
+ }
+
+ public String receiveAck() {
+ return (String) jmsTemplate.receiveAndConvert("ackQueue");
+ }
+}
\ No newline at end of file
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java
new file mode 100644
index 0000000000..9a483e23c9
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java
@@ -0,0 +1,22 @@
+package com.baeldung.ejbspringcomparison.spring.messagedriven;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.annotation.JmsListener;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.stereotype.Component;
+
+@Component
+public class Receiver {
+ @Autowired
+ private JmsTemplate jmsTemplate;
+
+ @JmsListener(destination = "myQueue")
+ public void receiveMessage(String msg) {
+ sendAck();
+ }
+
+ private void sendAck() {
+ jmsTemplate.convertAndSend("ackQueue", "polo");
+ }
+
+}
\ No newline at end of file
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java
new file mode 100644
index 0000000000..6b2b57582d
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java
@@ -0,0 +1,22 @@
+package com.baeldung.ejbspringcomparison.spring.singleton;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class CounterBean {
+ private int count = 1;
+ private String name;
+
+ public int count() {
+ return count++;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java
new file mode 100644
index 0000000000..e6e026f52a
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java
@@ -0,0 +1,36 @@
+package com.baeldung.ejbspringcomparison.spring.stateful;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Component
+@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+public class ShoppingCartBean {
+
+ private String name;
+ private List shoppingCart;
+
+ public ShoppingCartBean() {
+ shoppingCart = new ArrayList();
+ }
+
+ public void addItem(String item) {
+ shoppingCart.add(item);
+ }
+
+ public List getItems() {
+ return shoppingCart;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java
new file mode 100644
index 0000000000..069028253e
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java
@@ -0,0 +1,140 @@
+package com.baeldung.ejbspringcomparison.ejb;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.ejb.embeddable.EJBContainer;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.baeldung.ejbspringcomparison.ejb.singleton.CounterEJBRemote;
+import com.baeldung.ejbspringcomparison.ejb.stateful.ShoppingCartEJBRemote;
+import com.baeldung.ejbspringcomparison.ejb.stateless.FinderEJBRemote;
+
+public class EJBUnitTest {
+
+ private static EJBContainer ejbContainer = null;
+
+ private static Context context = null;
+
+ @Resource
+ private ConnectionFactory connectionFactory;
+
+ @EJB
+ private FinderEJBRemote alphabetFinder;
+
+ @Resource(name = "myQueue")
+ private Queue myQueue;
+
+ @Resource(name = "ackQueue")
+ private Queue ackQueue;
+
+ @BeforeClass
+ public static void start() throws NamingException {
+ ejbContainer = EJBContainer.createEJBContainer();
+ }
+
+ @Before
+ public void initializeContext() throws NamingException {
+ context = ejbContainer.getContext();
+ context.bind("inject", this);
+ }
+
+ @Test
+ public void givenSingletonBean_whenCounterInvoked_thenCountIsIncremented() throws NamingException {
+
+ int count = 0;
+ CounterEJBRemote firstCounter = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB");
+ firstCounter.setName("first");
+
+ for (int i = 0; i < 10; i++) {
+ count = firstCounter.count();
+ }
+
+ assertEquals(10, count);
+ assertEquals("first", firstCounter.getName());
+
+ CounterEJBRemote secondCounter = (CounterEJBRemote) context.lookup("java:global/ejb-beans/CounterEJB");
+
+ int count2 = 0;
+ for (int i = 0; i < 10; i++) {
+ count2 = secondCounter.count();
+ }
+
+ assertEquals(20, count2);
+ assertEquals("first", secondCounter.getName());
+
+ }
+
+ @Test
+ public void givenStatefulBean_whenBathingCartWithThreeItemsAdded_thenItemsSizeIsThree() throws NamingException {
+ ShoppingCartEJBRemote bathingCart = (ShoppingCartEJBRemote) context.lookup("java:global/ejb-beans/ShoppingCartEJB");
+
+ bathingCart.setName("bathingCart");
+
+ bathingCart.addItem("soap");
+ bathingCart.addItem("shampoo");
+ bathingCart.addItem("oil");
+
+ assertEquals(3, bathingCart.getItems()
+ .size());
+ assertEquals("bathingCart", bathingCart.getName());
+
+ ShoppingCartEJBRemote fruitCart = (ShoppingCartEJBRemote) context.lookup("java:global/ejb-beans/ShoppingCartEJB");
+
+ fruitCart.addItem("apples");
+ fruitCart.addItem("oranges");
+
+ assertEquals(2, fruitCart.getItems()
+ .size());
+ assertNull(fruitCart.getName());
+ }
+
+ @Test
+ public void givenStatelessBean_whenSearchForA_thenApple() throws NamingException {
+
+ assertEquals("Apple", alphabetFinder.search("A"));
+ }
+
+ @Test
+ public void givenMDB_whenMessageSent_thenAcknowledgementReceived() throws InterruptedException, JMSException, NamingException {
+
+ Connection connection = connectionFactory.createConnection();
+ connection.start();
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer producer = session.createProducer(myQueue);
+ producer.send(session.createTextMessage("marco"));
+ MessageConsumer response = session.createConsumer(ackQueue);
+
+ assertEquals("polo", ((TextMessage) response.receive(1000)).getText());
+
+ }
+
+ @After
+ public void reset() throws NamingException {
+ context.unbind("inject");
+ }
+
+ @AfterClass
+ public static void closeContext() throws NamingException {
+ context.close();
+ ejbContainer.close();
+ }
+
+}
diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java
new file mode 100644
index 0000000000..e0b397befe
--- /dev/null
+++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java
@@ -0,0 +1,108 @@
+package com.baeldung.ejbspringcomparison.spring;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import javax.naming.NamingException;
+
+import org.apache.activemq.junit.EmbeddedActiveMQBroker;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+import com.baeldung.ejbspringcomparison.spring.config.ApplicationConfig;
+import com.baeldung.ejbspringcomparison.spring.messagedriven.Producer;
+import com.baeldung.ejbspringcomparison.spring.singleton.CounterBean;
+import com.baeldung.ejbspringcomparison.spring.stateful.ShoppingCartBean;
+
+public class SpringUnitTest {
+
+ private static AnnotationConfigApplicationContext context = null;
+
+ @ClassRule
+ public static EmbeddedActiveMQBroker broker = new EmbeddedActiveMQBroker() {
+ @Override
+ protected void configure() {
+ this.getBrokerService()
+ .setUseJmx(true);
+ try {
+ this.getBrokerService()
+ .addConnector("tcp://localhost:61616");
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+ };
+
+ @BeforeClass
+ public static void init() {
+ context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
+ }
+
+ @Test
+ public void whenCounterInvoked_thenCountIsIncremented() throws NamingException {
+
+ CounterBean firstCounter = context.getBean(CounterBean.class);
+ firstCounter.setName("first");
+ int count = 0;
+ for (int i = 0; i < 10; i++) {
+ count = firstCounter.count();
+ }
+
+ assertEquals(10, count);
+ assertEquals("first", firstCounter.getName());
+
+ CounterBean secondCounter = context.getBean(CounterBean.class);
+
+ int count2 = 0;
+ for (int i = 0; i < 10; i++) {
+ count2 = secondCounter.count();
+ }
+
+ assertEquals(20, count2);
+ assertEquals("first", secondCounter.getName());
+
+ }
+
+ @Test
+ public void whenBathingCartWithThreeItemsAdded_thenItemsSizeIsThree() throws NamingException {
+ ShoppingCartBean bathingCart = context.getBean(ShoppingCartBean.class);
+
+ bathingCart.setName("bathingCart");
+
+ bathingCart.addItem("soap");
+ bathingCart.addItem("shampoo");
+ bathingCart.addItem("oil");
+
+ assertEquals(3, bathingCart.getItems()
+ .size());
+
+ assertEquals("bathingCart", bathingCart.getName());
+
+ ShoppingCartBean fruitCart = context.getBean(ShoppingCartBean.class);
+
+ fruitCart.addItem("apples");
+ fruitCart.addItem("oranges");
+
+ assertEquals(2, fruitCart.getItems()
+ .size());
+ assertNull(fruitCart.getName());
+ }
+
+ @Test
+ public void givenJMSBean_whenMessageSent_thenAcknowledgementReceived() throws NamingException {
+ Producer producer = context.getBean(Producer.class);
+ producer.sendMessageToDefaultDestination("marco");
+
+ assertEquals("polo", producer.receiveAck());
+ }
+
+ @AfterClass
+ public static void closeContext() throws NamingException {
+ context.close();
+ }
+
+}
diff --git a/spring-jooq/pom.xml b/spring-jooq/pom.xml
index f3b8cce8dc..63c6b5c8ee 100644
--- a/spring-jooq/pom.xml
+++ b/spring-jooq/pom.xml
@@ -36,6 +36,7 @@
com.h2databaseh2
+ ${h2.version}
@@ -194,7 +195,6 @@
1.51.0.0org.jooq.example.spring.Application
- 2.1.9.RELEASE
\ No newline at end of file
diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java
index b313eafdb9..fde56bebc0 100644
--- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java
+++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaApplication.java
@@ -25,7 +25,7 @@ public class KafkaApplication {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(KafkaApplication.class, args);
-
+
MessageProducer producer = context.getBean(MessageProducer.class);
MessageListener listener = context.getBean(MessageListener.class);
/*
@@ -101,15 +101,17 @@ public class KafkaApplication {
private String greetingTopicName;
public void sendMessage(String message) {
-
+
ListenableFuture> future = kafkaTemplate.send(topicName, message);
-
+
future.addCallback(new ListenableFutureCallback>() {
@Override
public void onSuccess(SendResult result) {
- System.out.println("Sent message=[" + message + "] with offset=[" + result.getRecordMetadata().offset() + "]");
+ System.out.println("Sent message=[" + message + "] with offset=[" + result.getRecordMetadata()
+ .offset() + "]");
}
+
@Override
public void onFailure(Throwable ex) {
System.out.println("Unable to send message=[" + message + "] due to : " + ex.getMessage());
@@ -158,7 +160,7 @@ public class KafkaApplication {
latch.countDown();
}
- @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" }))
+ @KafkaListener(topicPartitions = @TopicPartition(topic = "${partitioned.topic.name}", partitions = { "0", "3" }), containerFactory = "partitionsKafkaListenerContainerFactory")
public void listenToParition(@Payload String message, @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition) {
System.out.println("Received Message: " + message + " from partition: " + partition);
this.partitionLatch.countDown();
diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java
index 933d2353aa..abaa431eec 100644
--- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java
+++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaConsumerConfig.java
@@ -29,7 +29,7 @@ public class KafkaConsumerConfig {
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
return new DefaultKafkaConsumerFactory<>(props);
}
-
+
public ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory(String groupId) {
ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory(groupId));
@@ -50,12 +50,12 @@ public class KafkaConsumerConfig {
public ConcurrentKafkaListenerContainerFactory headersKafkaListenerContainerFactory() {
return kafkaListenerContainerFactory("headers");
}
-
+
@Bean
public ConcurrentKafkaListenerContainerFactory partitionsKafkaListenerContainerFactory() {
return kafkaListenerContainerFactory("partitions");
}
-
+
@Bean
public ConcurrentKafkaListenerContainerFactory filterKafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory factory = kafkaListenerContainerFactory("filter");
diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java
index 7e2527b36e..0223bab0fe 100644
--- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java
+++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaProducerConfig.java
@@ -32,7 +32,7 @@ public class KafkaProducerConfig {
public KafkaTemplate kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
-
+
@Bean
public ProducerFactory greetingProducerFactory() {
Map configProps = new HashMap<>();
@@ -41,10 +41,10 @@ public class KafkaProducerConfig {
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
return new DefaultKafkaProducerFactory<>(configProps);
}
-
+
@Bean
public KafkaTemplate greetingKafkaTemplate() {
return new KafkaTemplate<>(greetingProducerFactory());
}
-
+
}
diff --git a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java
index a3426e78a3..fb60fadde4 100644
--- a/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java
+++ b/spring-kafka/src/main/java/com/baeldung/spring/kafka/KafkaTopicConfig.java
@@ -12,10 +12,10 @@ import org.springframework.kafka.core.KafkaAdmin;
@Configuration
public class KafkaTopicConfig {
-
+
@Value(value = "${kafka.bootstrapAddress}")
private String bootstrapAddress;
-
+
@Value(value = "${message.topic.name}")
private String topicName;
@@ -27,31 +27,31 @@ public class KafkaTopicConfig {
@Value(value = "${greeting.topic.name}")
private String greetingTopicName;
-
+
@Bean
public KafkaAdmin kafkaAdmin() {
Map configs = new HashMap<>();
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
return new KafkaAdmin(configs);
}
-
+
@Bean
public NewTopic topic1() {
- return new NewTopic(topicName, 1, (short) 1);
+ return new NewTopic(topicName, 1, (short) 1);
}
-
+
@Bean
public NewTopic topic2() {
- return new NewTopic(partionedTopicName, 6, (short) 1);
+ return new NewTopic(partionedTopicName, 6, (short) 1);
}
-
+
@Bean
public NewTopic topic3() {
- return new NewTopic(filteredTopicName, 1, (short) 1);
+ return new NewTopic(filteredTopicName, 1, (short) 1);
}
-
+
@Bean
public NewTopic topic4() {
- return new NewTopic(greetingTopicName, 1, (short) 1);
+ return new NewTopic(greetingTopicName, 1, (short) 1);
}
}
diff --git a/spring-mvc-basics-3/pom.xml b/spring-mvc-basics-3/pom.xml
index 48b1e51dd3..1dea8f9e93 100644
--- a/spring-mvc-basics-3/pom.xml
+++ b/spring-mvc-basics-3/pom.xml
@@ -138,7 +138,7 @@
- org.baeldung.boot.Application
+ com.baeldung.boot.Application3.1.13.3.7-12.2
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java
index c1b6558b26..cb0d0c1532 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot;
+package com.baeldung.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java
index 6373553837..44a5e823f7 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java
@@ -1,12 +1,12 @@
-package org.baeldung.boot.config;
+package com.baeldung.boot.config;
import java.util.List;
-import org.baeldung.boot.converter.GenericBigDecimalConverter;
-import org.baeldung.boot.converter.StringToAbstractEntityConverterFactory;
-import org.baeldung.boot.converter.StringToEmployeeConverter;
-import org.baeldung.boot.converter.StringToEnumConverter;
-import org.baeldung.boot.web.resolver.HeaderVersionArgumentResolver;
+import com.baeldung.boot.converter.GenericBigDecimalConverter;
+import com.baeldung.boot.converter.StringToAbstractEntityConverterFactory;
+import com.baeldung.boot.converter.StringToEmployeeConverter;
+import com.baeldung.boot.converter.StringToEnumConverter;
+import com.baeldung.boot.web.resolver.HeaderVersionArgumentResolver;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java
index 17457f4c20..39fd5af318 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java
@@ -1,8 +1,8 @@
-package org.baeldung.boot.controller;
+package com.baeldung.boot.controller;
-import org.baeldung.boot.domain.GenericEntity;
-import org.baeldung.boot.domain.Modes;
-import org.baeldung.boot.web.resolver.Version;
+import com.baeldung.boot.domain.GenericEntity;
+import com.baeldung.boot.domain.Modes;
+import com.baeldung.boot.web.resolver.Version;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java
index f756a25f67..0040327e00 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.converter;
+package com.baeldung.boot.converter;
import com.google.common.collect.ImmutableSet;
import org.springframework.core.convert.TypeDescriptor;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
index 9e7fd8f858..bfeb03f748 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
@@ -1,8 +1,8 @@
-package org.baeldung.boot.converter;
+package com.baeldung.boot.converter;
-import org.baeldung.boot.domain.AbstractEntity;
-import org.baeldung.boot.domain.Bar;
-import org.baeldung.boot.domain.Foo;
+import com.baeldung.boot.domain.AbstractEntity;
+import com.baeldung.boot.domain.Bar;
+import com.baeldung.boot.domain.Foo;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.converter.ConverterFactory;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java
index e00d0ad312..678ae49195 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java
@@ -1,6 +1,6 @@
-package org.baeldung.boot.converter;
+package com.baeldung.boot.converter;
-import org.baeldung.boot.domain.Employee;
+import com.baeldung.boot.domain.Employee;
import org.springframework.core.convert.converter.Converter;
public class StringToEmployeeConverter implements Converter {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java
index 498b44abec..320c26cba0 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java
@@ -1,6 +1,6 @@
-package org.baeldung.boot.converter;
+package com.baeldung.boot.converter;
-import org.baeldung.boot.domain.Modes;
+import com.baeldung.boot.domain.Modes;
import org.springframework.core.convert.converter.Converter;
public class StringToEnumConverter implements Converter {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java
index 8a08b438f2..8d9b85f57a 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.converter;
+package com.baeldung.boot.converter;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java
index d3c012ba31..ac5bebcdeb 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java
@@ -1,8 +1,8 @@
-package org.baeldung.boot.converter.controller;
+package com.baeldung.boot.converter.controller;
-import org.baeldung.boot.domain.Bar;
-import org.baeldung.boot.domain.Foo;
-import org.baeldung.boot.domain.Modes;
+import com.baeldung.boot.domain.Bar;
+import com.baeldung.boot.domain.Foo;
+import com.baeldung.boot.domain.Modes;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
index 762d237156..ed118f9cdb 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
@@ -1,6 +1,6 @@
-package org.baeldung.boot.converter.controller;
+package com.baeldung.boot.converter.controller;
-import org.baeldung.boot.domain.Employee;
+import com.baeldung.boot.domain.Employee;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java
index 30e0d1e5fe..08953928cb 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
public abstract class AbstractEntity {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java
index 724f5e4bca..063ed3db63 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
public class Bar extends AbstractEntity {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java
index 8242e53200..a96fc5d051 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
import javax.persistence.Entity;
import javax.persistence.Id;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java
index a2ff354e59..c6637f6162 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric;
public class Foo extends AbstractEntity {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java
index f1c936e432..a2a676200a 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java
index dcba064e8c..7717294996 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.domain;
+package com.baeldung.boot.domain;
public enum Modes {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java
index d897e17afe..5abe7ea6b1 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.boot.repository;
+package com.baeldung.boot.repository;
-import org.baeldung.boot.domain.GenericEntity;
+import com.baeldung.boot.domain.GenericEntity;
import org.springframework.data.jpa.repository.JpaRepository;
public interface GenericEntityRepository extends JpaRepository {
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
index b3a0dba7e8..de10fa5098 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.web.resolver;
+package com.baeldung.boot.web.resolver;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java
index f69d40510e..84dabe2b47 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java
@@ -1,4 +1,4 @@
-package org.baeldung.boot.web.resolver;
+package com.baeldung.boot.web.resolver;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
index b6d4905653..89acbe79a4 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java
index a18de30788..4d44b23ee9 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.ByteArrayInputStream;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java
index e3f3b7a060..ba3901077b 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java
index 9194bcf27c..9516ff861e 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -6,12 +6,12 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* To initialize the WebApplication, Please see
- * {@link org.baeldung.spring.config.MainWebAppInitializer}
+ * {@link com.baeldung.spring.config.MainWebAppInitializer}
*/
@EnableWebMvc
@Configuration
-@ComponentScan(basePackages = "org.baeldung.cachedrequest")
+@ComponentScan(basePackages = "com.baeldung.cachedrequest")
public class HttpRequestDemoConfig implements WebMvcConfigurer {
}
\ No newline at end of file
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java
index 594b6f2360..d7ac4c66a3 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
public class Person {
private String firstName;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java
index 6f241b3fb3..3c505f4754 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java
index 55455f590f..9c4c589a5d 100644
--- a/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java
+++ b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
index bccca58aea..d2b4c1aff9 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
@@ -1,7 +1,7 @@
package com.baeldung;
-import org.baeldung.boot.Application;
-import org.baeldung.boot.domain.Modes;
+import com.baeldung.boot.Application;
+import com.baeldung.boot.domain.Modes;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
index c283529435..6ebc34973e 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
@@ -1,8 +1,8 @@
package com.baeldung;
-import org.baeldung.boot.Application;
-import org.baeldung.boot.domain.GenericEntity;
-import org.baeldung.boot.repository.GenericEntityRepository;
+import com.baeldung.boot.Application;
+import com.baeldung.boot.domain.GenericEntity;
+import com.baeldung.boot.repository.GenericEntityRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
index 1a2a4e22d9..1349e7e9e0 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
@@ -1,6 +1,6 @@
package com.baeldung;
-import org.baeldung.boot.Application;
+import com.baeldung.boot.Application;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
index 1fe9dd4c82..1ff0093b4b 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
index d7000d91ee..af025f632e 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
index 057f1ac627..ec0f8948c2 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.IOException;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java
index 046a310cc0..9212ceb886 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Before;
diff --git a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
index ca2d5c600b..3d2acabe6b 100644
--- a/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
+++ b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.cachedrequest;
+package com.baeldung.cachedrequest;
import java.io.IOException;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java
index 218418ecc8..b84094132d 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller.config;
+package com.baeldung.controller.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java
index 018c530f18..6e79ac0aad 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller.config;
+package com.baeldung.controller.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -11,7 +11,7 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
-@ComponentScan(basePackages = { "org.baeldung.controller.controller", "com.baeldung.controller", "org.baeldung.controller.config" })
+@ComponentScan(basePackages = { "com.baeldung.controller.controller", "com.baeldung.controller", "com.baeldung.controller.config" })
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
index c282ae6a62..d8330333cb 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller.controller;
+package com.baeldung.controller.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java
index 48981fd012..f41d45caff 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java
@@ -1,6 +1,6 @@
-package org.baeldung.controller.controller;
+package com.baeldung.controller.controller;
-import org.baeldung.controller.student.Student;
+import com.baeldung.controller.student.Student;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
index 4e5d1d9e17..a529faeed3 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
@@ -1,6 +1,6 @@
-package org.baeldung.controller.controller;
+package com.baeldung.controller.controller;
-import org.baeldung.controller.student.Student;
+import com.baeldung.controller.student.Student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java
index 12ae4e0ab1..cf275ffc0f 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java
@@ -2,7 +2,7 @@
/**
* @author Prashant Dutta
*/
-package org.baeldung.controller.controller;
+package com.baeldung.controller.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
index 5f49e5ceb9..8a82dd5553 100644
--- a/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
+++ b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller.student;
+package com.baeldung.controller.student;
public class Student {
private String name;
diff --git a/spring-mvc-basics-4/src/main/resources/test-mvc.xml b/spring-mvc-basics-4/src/main/resources/test-mvc.xml
index 8013170379..44c300dfc6 100644
--- a/spring-mvc-basics-4/src/main/resources/test-mvc.xml
+++ b/spring-mvc-basics-4/src/main/resources/test-mvc.xml
@@ -10,7 +10,7 @@
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
-
+
diff --git a/spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml
index 03322279e2..1344362d19 100644
--- a/spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml
+++ b/spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml
@@ -29,7 +29,7 @@
-->
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java
index e32d9f7aca..f378357548 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java
@@ -1,8 +1,8 @@
-package org.baeldung.controller;
+package com.baeldung.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.baeldung.controller.config.WebConfig;
-import org.baeldung.controller.student.Student;
+import com.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.student.Student;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java
index 8e8a021530..7e5cf1532e 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller;
+package com.baeldung.controller;
import org.junit.Assert;
import org.junit.Before;
@@ -14,7 +14,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.ModelAndView;
-import org.baeldung.controller.student.Student;
+import com.baeldung.controller.student.Student;
import com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(SpringJUnit4ClassRunner.class)
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java
index 21084f44ce..aa8148c1ef 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.controller;
+package com.baeldung.controller;
import org.junit.Assert;
import org.junit.Before;
@@ -15,7 +15,7 @@ import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.ModelAndView;
/**
- * This is the test class for {@link org.baeldung.controller.controller.PassParametersController} class.
+ * This is the test class for {@link com.baeldung.controller.controller.PassParametersController} class.
* 09/09/2017
*
* @author Ahmet Cetin
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java
index 2fb3569fc1..173ac165c3 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
-import org.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.config.WebConfig;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
index c7b568b68e..1fadfb7038 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
-import org.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.config.WebConfig;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
index 760d94af17..00d620ef9a 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
-import org.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.config.WebConfig;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
index fca6bba5fd..f7fff714a9 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
-import org.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.config.WebConfig;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
diff --git a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
index 5d2733ec92..b4e4c9ade5 100644
--- a/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
+++ b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
-import org.baeldung.controller.config.WebConfig;
+import com.baeldung.controller.config.WebConfig;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
diff --git a/spring-mvc-basics-4/src/test/resources/test-mvc.xml b/spring-mvc-basics-4/src/test/resources/test-mvc.xml
index 15f950ed4f..f1aa8e9504 100644
--- a/spring-mvc-basics-4/src/test/resources/test-mvc.xml
+++ b/spring-mvc-basics-4/src/test/resources/test-mvc.xml
@@ -10,7 +10,7 @@
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
-
+
diff --git a/spring-mvc-forms-jsp/src/test/java/org/baeldung/SpringContextTest.java b/spring-mvc-forms-jsp/src/test/java/org/baeldung/SpringContextTest.java
index e35fc8c86c..b7e09685b9 100644
--- a/spring-mvc-forms-jsp/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-mvc-forms-jsp/src/test/java/org/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import com.baeldung.springmvcforms.configuration.ApplicationConfiguration;
diff --git a/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/listbindingexample/SpringContextTest.java b/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/listbindingexample/SpringContextTest.java
index 751df882f9..12bb470f1b 100644
--- a/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/listbindingexample/SpringContextTest.java
+++ b/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/listbindingexample/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.listbindingexample;
+package com.baeldung.listbindingexample;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/sessionattrs/SpringContextTest.java b/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/sessionattrs/SpringContextTest.java
index 0b308319b1..a00c44206a 100644
--- a/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/sessionattrs/SpringContextTest.java
+++ b/spring-mvc-forms-thymeleaf/src/test/java/org/baeldung/sessionattrs/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.sessionattrs;
+package com.baeldung.sessionattrs;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java b/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java
index 5bf095888e..7305f836cf 100644
--- a/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java
+++ b/spring-mvc-java-2/src/main/java/com/baeldung/cache/CacheControlController.java
@@ -3,9 +3,8 @@ package com.baeldung.cache;
import org.springframework.http.CacheControl;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.request.WebRequest;
import javax.servlet.http.HttpServletResponse;
@@ -16,28 +15,28 @@ import java.util.concurrent.TimeUnit;
@Controller
public class CacheControlController {
- @RequestMapping(value = "/hello/{name}", method = RequestMethod.GET)
- public ResponseEntity helloWorld(@PathVariable String name) {
+ @GetMapping(value = "/hello/{name}")
+ public ResponseEntity hello(@PathVariable String name) {
CacheControl cacheControl = CacheControl.maxAge(60, TimeUnit.SECONDS)
- .noTransform()
- .mustRevalidate();
+ .noTransform()
+ .mustRevalidate();
return ResponseEntity.ok()
- .cacheControl(cacheControl)
- .body("Hello " + name);
+ .cacheControl(cacheControl)
+ .body("Hello " + name);
}
- @RequestMapping(value = "/home/{name}", method = RequestMethod.GET)
+ @GetMapping(value = "/home/{name}")
public String home(@PathVariable String name, final HttpServletResponse response) {
response.addHeader("Cache-Control", "max-age=60, must-revalidate, no-transform");
return "home";
}
- @RequestMapping(value = "/cache/{name}", method = RequestMethod.GET)
+ @GetMapping(value = "/login/{name}")
public ResponseEntity intercept(@PathVariable String name) {
return ResponseEntity.ok().body("Hello " + name);
}
- @RequestMapping(value = "/validate/{name}", method = RequestMethod.GET)
+ @GetMapping(value = "/productInfo/{name}")
public ResponseEntity validate(@PathVariable String name, WebRequest request) {
ZoneId zoneId = ZoneId.of("GMT");
diff --git a/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java b/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java
index 728479979c..2f07912e80 100644
--- a/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java
+++ b/spring-mvc-java-2/src/main/java/com/baeldung/cache/WebConfig.java
@@ -35,7 +35,7 @@ public class WebConfig implements WebMvcConfigurer {
WebContentInterceptor interceptor = new WebContentInterceptor();
interceptor.addCacheMapping(CacheControl.maxAge(60, TimeUnit.SECONDS)
.noTransform()
- .mustRevalidate(), "/cache/*");
+ .mustRevalidate(), "/login/*");
registry.addInterceptor(interceptor);
}
}
\ No newline at end of file
diff --git a/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java b/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java
index ef408038ae..7acfe5e480 100644
--- a/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java
+++ b/spring-mvc-java-2/src/test/java/com/baeldung/cache/CacheControlControllerIntegrationTest.java
@@ -37,7 +37,8 @@ public class CacheControlControllerIntegrationTest {
this.mockMvc.perform(MockMvcRequestBuilders.get("/hello/baeldung"))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.header().string("Cache-Control","max-age=60, must-revalidate, no-transform"));
+ .andExpect(MockMvcResultMatchers.header()
+ .string("Cache-Control","max-age=60, must-revalidate, no-transform"));
}
@Test
@@ -59,7 +60,7 @@ public class CacheControlControllerIntegrationTest {
@Test
void whenInterceptor_thenReturnCacheHeader() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.get("/cache/baeldung"))
+ this.mockMvc.perform(MockMvcRequestBuilders.get("/login/baeldung"))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.header().string("Cache-Control","max-age=60, must-revalidate, no-transform"));
@@ -69,7 +70,7 @@ public class CacheControlControllerIntegrationTest {
void whenValidate_thenReturnCacheHeader() throws Exception {
HttpHeaders headers = new HttpHeaders();
headers.add(IF_UNMODIFIED_SINCE, "Tue, 04 Feb 2020 19:57:25 GMT");
- this.mockMvc.perform(MockMvcRequestBuilders.get("/validate/baeldung").headers(headers))
+ this.mockMvc.perform(MockMvcRequestBuilders.get("/productInfo/baeldung").headers(headers))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().is(304));
}
diff --git a/spring-mvc-java/README.md b/spring-mvc-java/README.md
index ff1f7830b6..f1263860f9 100644
--- a/spring-mvc-java/README.md
+++ b/spring-mvc-java/README.md
@@ -16,3 +16,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [Spring MVC @PathVariable with a dot (.) gets truncated](https://www.baeldung.com/spring-mvc-pathvariable-dot)
- [Working with Date Parameters in Spring](https://www.baeldung.com/spring-date-parameters)
- [A Java Web Application Without a web.xml](https://www.baeldung.com/java-web-app-without-web-xml)
+- [Accessing Spring MVC Model Objects in JavaScript](https://www.baeldung.com/spring-mvc-model-objects-js)
diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml
index 0f3a1d65b9..079a664a5d 100644
--- a/spring-mvc-java/pom.xml
+++ b/spring-mvc-java/pom.xml
@@ -223,8 +223,6 @@
- 2.1.9.RELEASE
-
3.0.9.RELEASE
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/accessparamsjs/App.java b/spring-mvc-java/src/main/java/com/baeldung/accessparamsjs/App.java
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/accessparamsjs/App.java
rename to spring-mvc-java/src/main/java/com/baeldung/accessparamsjs/App.java
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/accessparamsjs/Controller.java b/spring-mvc-java/src/main/java/com/baeldung/accessparamsjs/Controller.java
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/accessparamsjs/Controller.java
rename to spring-mvc-java/src/main/java/com/baeldung/accessparamsjs/Controller.java
index 8759f1bcd6..157dcf54da 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/accessparamsjs/Controller.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/accessparamsjs/Controller.java
@@ -1,11 +1,11 @@
package com.baeldung.accessparamsjs;
-import java.util.Map;
-
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
+import java.util.Map;
+
/**
* Sample rest controller for the tutorial article
* "Access Spring MVC Model object in JavaScript".
diff --git a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/CustomWebMvcConfigurationSupport.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/CustomWebMvcConfigurationSupport.java
index 4a9f6a3431..a0dd7358d0 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/CustomWebMvcConfigurationSupport.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/CustomWebMvcConfigurationSupport.java
@@ -1,17 +1,17 @@
package com.baeldung.spring.web.config;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
-import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
@Configuration
public class CustomWebMvcConfigurationSupport extends WebMvcConfigurationSupport {
- @Bean
- public RequestMappingHandlerMapping requestMappingHandlerMapping() {
- RequestMappingHandlerMapping handlerMapping = super.requestMappingHandlerMapping();
- handlerMapping.setUseSuffixPatternMatch(false);
- return handlerMapping;
+ @Override
+ protected PathMatchConfigurer getPathMatchConfigurer() {
+ PathMatchConfigurer pathMatchConfigurer = super.getPathMatchConfigurer();
+ pathMatchConfigurer.setUseSuffixPatternMatch(false);
+
+ return pathMatchConfigurer;
}
}
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/resources/templates/thymeleaf/index.html b/spring-mvc-java/src/main/resources/templates/thymeleaf/index.html
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/resources/templates/thymeleaf/index.html
rename to spring-mvc-java/src/main/resources/templates/thymeleaf/index.html
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/webapp/js/jquery.js b/spring-mvc-java/src/main/webapp/js/jquery.js
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/webapp/js/jquery.js
rename to spring-mvc-java/src/main/webapp/js/jquery.js
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script-async-jquery.js b/spring-mvc-java/src/main/webapp/js/script-async-jquery.js
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script-async-jquery.js
rename to spring-mvc-java/src/main/webapp/js/script-async-jquery.js
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script-async.js b/spring-mvc-java/src/main/webapp/js/script-async.js
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script-async.js
rename to spring-mvc-java/src/main/webapp/js/script-async.js
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script.js b/spring-mvc-java/src/main/webapp/js/script.js
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/main/webapp/js/script.js
rename to spring-mvc-java/src/main/webapp/js/script.js
diff --git a/spring-boot-modules/spring-boot-mvc/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java b/spring-mvc-java/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java
similarity index 100%
rename from spring-boot-modules/spring-boot-mvc/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java
rename to spring-mvc-java/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java
index 2dc62a20f6..f05d34b654 100644
--- a/spring-boot-modules/spring-boot-mvc/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/accessparamsjs/ControllerUnitTest.java
@@ -1,7 +1,5 @@
package com.baeldung.accessparamsjs;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +10,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
diff --git a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
index 079ea3e5cd..3d34a46791 100644
--- a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
@@ -32,7 +32,7 @@ public class GreetControllerIntegrationTest {
private MockMvc mockMvc;
- private static final String CONTENT_TYPE = "application/json;charset=UTF-8";
+ private static final String CONTENT_TYPE = "application/json";
@Before
public void setup() throws Exception {
diff --git a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerUnitTest.java b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerUnitTest.java
index 0475bd933d..eacd256438 100644
--- a/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerUnitTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerUnitTest.java
@@ -16,7 +16,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
public class GreetControllerUnitTest {
private MockMvc mockMvc;
- private static final String CONTENT_TYPE = "application/json;charset=UTF-8";
+ private static final String CONTENT_TYPE = "application/json";
@Before
public void setup() {
diff --git a/spring-mvc-velocity/src/test/java/org/baeldung/SpringContextTest.java b/spring-mvc-velocity/src/test/java/org/baeldung/SpringContextTest.java
index 22a4486aa7..a27cacba53 100644
--- a/spring-mvc-velocity/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-mvc-velocity/src/test/java/org/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-mvc-webflow/src/main/java/org/baeldung/servlet/WebInitializer.java b/spring-mvc-webflow/src/main/java/org/baeldung/servlet/WebInitializer.java
index 2f52cad804..fc0adb558d 100644
--- a/spring-mvc-webflow/src/main/java/org/baeldung/servlet/WebInitializer.java
+++ b/spring-mvc-webflow/src/main/java/org/baeldung/servlet/WebInitializer.java
@@ -1,9 +1,9 @@
-package org.baeldung.servlet;
+package com.baeldung.servlet;
import javax.servlet.ServletRegistration.Dynamic;
-import org.baeldung.spring.WebFlowConfig;
-import org.baeldung.spring.WebMvcConfig;
+import com.baeldung.spring.WebFlowConfig;
+import com.baeldung.spring.WebMvcConfig;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
diff --git a/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebFlowConfig.java b/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebFlowConfig.java
index 3d2de2a014..d42996bbaf 100644
--- a/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebFlowConfig.java
+++ b/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebFlowConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring;
+package com.baeldung.spring;
import java.util.Collections;
diff --git a/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebMvcConfig.java b/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebMvcConfig.java
index 46bf322f1d..acaa11638d 100644
--- a/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebMvcConfig.java
+++ b/spring-mvc-webflow/src/main/java/org/baeldung/spring/WebMvcConfig.java
@@ -1,4 +1,4 @@
-package org.baeldung.spring;
+package com.baeldung.spring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
diff --git a/spring-mvc-webflow/src/test/java/org/baeldung/SpringContextTest.java b/spring-mvc-webflow/src/test/java/org/baeldung/SpringContextTest.java
index 122dc18bad..d58ddae6b8 100644
--- a/spring-mvc-webflow/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-mvc-webflow/src/test/java/org/baeldung/SpringContextTest.java
@@ -1,7 +1,7 @@
-package org.baeldung;
+package com.baeldung;
-import org.baeldung.spring.WebFlowConfig;
-import org.baeldung.spring.WebMvcConfig;
+import com.baeldung.spring.WebFlowConfig;
+import com.baeldung.spring.WebMvcConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
diff --git a/spring-mvc-xml/pom.xml b/spring-mvc-xml/pom.xml
index e93b426119..4812d5c979 100644
--- a/spring-mvc-xml/pom.xml
+++ b/spring-mvc-xml/pom.xml
@@ -92,6 +92,36 @@
${spring-boot.version}test
+
+
+
+ org.crashub
+ crash.embed.spring
+ ${crash.version}
+
+
+ org.crashub
+ crash.cli
+ ${crash.version}
+
+
+ org.crashub
+ crash.connectors.telnet
+ ${crash.version}
+
+
+ log4j
+ log4j
+
+
+
+
+
+
+ org.codehaus.groovy
+ groovy
+ ${groovy.version}
+
@@ -138,6 +168,9 @@
1.6.1
+ 1.3.2
+ 3.0.0-rc-3
+
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message.groovy b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message.groovy
new file mode 100644
index 0000000000..d66ab13d96
--- /dev/null
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message.groovy
@@ -0,0 +1,14 @@
+import org.crsh.cli.Command;
+import org.crsh.cli.Usage;
+import org.crsh.cli.Option;
+
+class message {
+
+ @Usage("show my own message")
+ @Command
+ Object main(@Usage("custom message") @Option(names=["m","message"]) String message) {
+ if (message == null)
+ message = "No message given...";
+ return message;
+ }
+}
\ No newline at end of file
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message2.java b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message2.java
new file mode 100644
index 0000000000..d1ead88024
--- /dev/null
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/commands/message2.java
@@ -0,0 +1,14 @@
+import org.crsh.command.BaseCommand;
+import org.crsh.cli.Usage;
+import org.crsh.cli.Command;
+import org.crsh.cli.Option;
+
+public class message2 extends BaseCommand {
+ @Usage("show my own message using java")
+ @Command
+ public Object main(@Usage("custom message") @Option(names = { "m", "message" }) String message) {
+ if (message == null)
+ message = "No message given...";
+ return message;
+ }
+}
\ No newline at end of file
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/crash/crash.properties b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/crash.properties
new file mode 100644
index 0000000000..f9ad0d7cf6
--- /dev/null
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/crash.properties
@@ -0,0 +1 @@
+crash.telnet.port=50001
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/crash/telnet.properties b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/telnet.properties
new file mode 100644
index 0000000000..99071d09ff
--- /dev/null
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/crash/telnet.properties
@@ -0,0 +1,65 @@
+############################
+# Telnet daemon properties #
+############################
+
+#####################
+# Terminals Section #
+#####################
+
+# List of terminals available and defined below
+terminals=vt100,ansi,windoof,xterm
+
+# vt100 implementation and aliases
+term.vt100.class=net.wimpi.telnetd.io.terminal.vt100
+term.vt100.aliases=default,vt100-am,vt102,dec-vt100
+
+# ansi implementation and aliases
+term.ansi.class=net.wimpi.telnetd.io.terminal.ansi
+term.ansi.aliases=color-xterm,xterm-color,vt320,vt220,linux,screen
+
+# windoof implementation and aliases
+term.windoof.class=net.wimpi.telnetd.io.terminal.Windoof
+term.windoof.aliases=
+
+# xterm implementation and aliases
+term.xterm.class=net.wimpi.telnetd.io.terminal.xterm
+term.xterm.aliases=
+
+##################
+# Shells Section #
+##################
+
+# List of shells available and defined below
+shells=simple
+
+# shell implementations
+shell.simple.class=org.crsh.telnet.term.TelnetHandler
+
+#####################
+# Listeners Section #
+#####################
+listeners=std
+
+
+# std listener specific properties
+
+#Basic listener and connection management settings (port is commented because CRaSH configures it)
+# std.port=5000
+std.floodprotection=5
+std.maxcon=25
+
+
+# Timeout Settings for connections (ms)
+std.time_to_warning=3600000
+std.time_to_timedout=60000
+
+# Housekeeping thread active every 1 secs
+std.housekeepinginterval=1000
+
+std.inputmode=character
+
+# Login shell
+std.loginshell=simple
+
+# Connection filter class
+std.connectionfilter=none
\ No newline at end of file
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml
index 5c8fa611ed..126fea996e 100644
--- a/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml
@@ -52,4 +52,15 @@
+
+
+
+
+
+ 5000
+
+
+
diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml
index 6ff435b84b..4a3d6cb321 100644
--- a/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml
+++ b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml
@@ -21,6 +21,9 @@
org.springframework.web.context.ContextLoaderListener
+
+ org.crsh.plugin.WebPluginLifeCycle
+
diff --git a/spring-mvc-xml/src/test/java/org/baeldung/SpringContextTest.java b/spring-mvc-xml/src/test/java/org/baeldung/SpringContextTest.java
index 27dcb83bd4..62e34859ee 100644
--- a/spring-mvc-xml/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-mvc-xml/src/test/java/org/baeldung/SpringContextTest.java
@@ -1,4 +1,4 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/spring-reactor/src/main/java/com/baeldung/Config.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java
similarity index 76%
rename from spring-reactor/src/main/java/com/baeldung/Config.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java
index 28f40dda02..f849215dc4 100644
--- a/spring-reactor/src/main/java/com/baeldung/Config.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/Config.java
@@ -1,8 +1,7 @@
-package com.baeldung;
+package com.baeldung.reactorbus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-
import reactor.Environment;
import reactor.bus.EventBus;
@@ -10,13 +9,12 @@ import reactor.bus.EventBus;
public class Config {
@Bean
- Environment env() {
+ public Environment env() {
return Environment.initializeIfEmpty().assignErrorJournal();
}
@Bean
- EventBus createEventBus(Environment env) {
+ public EventBus createEventBus(Environment env) {
return EventBus.create(env, Environment.THREAD_POOL);
}
-
}
diff --git a/spring-reactor/src/main/java/com/baeldung/Application.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
similarity index 52%
rename from spring-reactor/src/main/java/com/baeldung/Application.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
index 9030d41d26..b315e6ce25 100644
--- a/spring-reactor/src/main/java/com/baeldung/Application.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/NotificationApplication.java
@@ -1,24 +1,16 @@
-package com.baeldung;
+package com.baeldung.reactorbus;
+import com.baeldung.reactorbus.consumer.NotificationConsumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
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.Import;
-
-import com.baeldung.consumer.NotificationConsumer;
-
+import org.springframework.boot.autoconfigure.SpringBootApplication;
import reactor.bus.EventBus;
import static reactor.bus.selector.Selectors.$;
-@Configuration
-@EnableAutoConfiguration
-@ComponentScan
-@Import(Config.class)
-public class Application implements CommandLineRunner {
+@SpringBootApplication
+public class NotificationApplication implements CommandLineRunner {
@Autowired
private EventBus eventBus;
@@ -32,7 +24,6 @@ public class Application implements CommandLineRunner {
}
public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
+ SpringApplication.run(NotificationApplication.class, args);
}
-
}
diff --git a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java
similarity index 80%
rename from spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java
index ca6a5b4303..d9d2586187 100644
--- a/spring-reactor/src/main/java/com/baeldung/consumer/NotificationConsumer.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/consumer/NotificationConsumer.java
@@ -1,10 +1,10 @@
-package com.baeldung.consumer;
+package com.baeldung.reactorbus.consumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.baeldung.doman.NotificationData;
-import com.baeldung.service.NotificationService;
+import com.baeldung.reactorbus.domain.NotificationData;
+import com.baeldung.reactorbus.service.NotificationService;
import reactor.bus.Event;
import reactor.fn.Consumer;
diff --git a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java
similarity index 89%
rename from spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java
index 8665f247b0..62a7b38662 100644
--- a/spring-reactor/src/main/java/com/baeldung/controller/NotificationController.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/controller/NotificationController.java
@@ -1,11 +1,11 @@
-package com.baeldung.controller;
+package com.baeldung.reactorbus.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
-import com.baeldung.doman.NotificationData;
+import com.baeldung.reactorbus.domain.NotificationData;
import reactor.bus.Event;
import reactor.bus.EventBus;
diff --git a/spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java
similarity index 94%
rename from spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java
index d6d7b02949..65d3559541 100644
--- a/spring-reactor/src/main/java/com/baeldung/doman/NotificationData.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/domain/NotificationData.java
@@ -1,4 +1,4 @@
-package com.baeldung.doman;
+package com.baeldung.reactorbus.domain;
public class NotificationData {
diff --git a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java
similarity index 58%
rename from spring-reactor/src/main/java/com/baeldung/service/NotificationService.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java
index f653b2162f..dfcd03ed68 100644
--- a/spring-reactor/src/main/java/com/baeldung/service/NotificationService.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/NotificationService.java
@@ -1,6 +1,6 @@
-package com.baeldung.service;
+package com.baeldung.reactorbus.service;
-import com.baeldung.doman.NotificationData;
+import com.baeldung.reactorbus.domain.NotificationData;
public interface NotificationService {
diff --git a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java
similarity index 75%
rename from spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java
rename to spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java
index bf37741f6a..aa305caaad 100644
--- a/spring-reactor/src/main/java/com/baeldung/service/impl/NotificationServiceimpl.java
+++ b/spring-reactor/src/main/java/com/baeldung/reactorbus/service/impl/NotificationServiceimpl.java
@@ -1,9 +1,9 @@
-package com.baeldung.service.impl;
+package com.baeldung.reactorbus.service.impl;
import org.springframework.stereotype.Service;
-import com.baeldung.doman.NotificationData;
-import com.baeldung.service.NotificationService;
+import com.baeldung.reactorbus.domain.NotificationData;
+import com.baeldung.reactorbus.service.NotificationService;
@Service
public class NotificationServiceimpl implements NotificationService {
diff --git a/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java b/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java
deleted file mode 100644
index 5833bc277c..0000000000
--- a/spring-reactor/src/test/java/com/baeldung/DataLoaderLiveTest.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.baeldung;
-
-import org.junit.Test;
-import org.springframework.web.client.RestTemplate;
-
-public class DataLoaderLiveTest {
-
- @Test
- public void exampleTest() {
- RestTemplate restTemplate = new RestTemplate();
- restTemplate.getForObject("http://localhost:8080/startNotification/10", String.class);
- }
-
-}
diff --git a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
similarity index 71%
rename from spring-reactor/src/test/java/org/baeldung/SpringContextTest.java
rename to spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
index 5e68a8e64f..68b6018433 100644
--- a/spring-reactor/src/test/java/org/baeldung/SpringContextTest.java
+++ b/spring-reactor/src/test/java/com/baeldung/SpringContextTest.java
@@ -1,14 +1,14 @@
-package org.baeldung;
+package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
-import com.baeldung.Application;
+import com.baeldung.reactorbus.NotificationApplication;
@RunWith(SpringRunner.class)
-@SpringBootTest(classes = Application.class)
+@SpringBootTest(classes = NotificationApplication.class)
public class SpringContextTest {
@Test
diff --git a/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java
new file mode 100644
index 0000000000..0adea21fd4
--- /dev/null
+++ b/spring-reactor/src/test/java/com/baeldung/reactorbus/NotificationApplicationIntegrationTest.java
@@ -0,0 +1,22 @@
+package com.baeldung.reactorbus;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.client.RestTemplate;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class NotificationApplicationIntegrationTest {
+
+ @LocalServerPort
+ private int port;
+
+ @Test
+ public void givenAppStarted_whenNotificationTasksSubmitted_thenProcessed() {
+ RestTemplate restTemplate = new RestTemplate();
+ restTemplate.getForObject("http://localhost:" + port + "/startNotification/10", String.class);
+ }
+}
diff --git a/spring-rest-http/pom.xml b/spring-rest-http/pom.xml
index c5c6b8d44c..32d2804220 100644
--- a/spring-rest-http/pom.xml
+++ b/spring-rest-http/pom.xml
@@ -41,12 +41,18 @@
org.springframework.bootspring-boot-starter-test
+
+ com.github.java-json-tools
+ json-patch
+ ${jsonpatch.version}
+ 1.4.9
+ 1.12
diff --git a/spring-rest-http/src/main/java/com/baeldung/CustomerSpringBootRestApplication.java b/spring-rest-http/src/main/java/com/baeldung/CustomerSpringBootRestApplication.java
new file mode 100644
index 0000000000..2995d4d0dc
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/CustomerSpringBootRestApplication.java
@@ -0,0 +1,12 @@
+package com.baeldung;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class CustomerSpringBootRestApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(CustomerSpringBootRestApplication.class, args);
+ }
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java b/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java
index ea2c536757..6e8b41bbed 100644
--- a/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java
+++ b/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java
@@ -21,7 +21,7 @@ import java.util.List;
*/
@Configuration
@EnableWebMvc
-@ComponentScan({ "com.baeldung.web", "com.baeldung.requestmapping" })
+@ComponentScan({ "com.baeldung.web.controller.status", "com.baeldung.requestmapping" })
public class MvcConfig implements WebMvcConfigurer {
public MvcConfig() {
diff --git a/spring-rest-http/src/main/java/com/baeldung/model/Customer.java b/spring-rest-http/src/main/java/com/baeldung/model/Customer.java
new file mode 100644
index 0000000000..e65446c389
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/model/Customer.java
@@ -0,0 +1,79 @@
+package com.baeldung.model;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+public class Customer {
+ private String id;
+ private String telephone;
+ private List favorites;
+ private Map communicationPreferences;
+
+ public Customer() {
+ }
+
+ public Customer(String id, String telephone, List favorites, Map communicationPreferences) {
+ this(telephone, favorites, communicationPreferences);
+ this.id = id;
+ }
+
+ public Customer(String telephone, List favorites, Map communicationPreferences) {
+ this.telephone = telephone;
+ this.favorites = favorites;
+ this.communicationPreferences = communicationPreferences;
+ }
+
+ public static Customer fromCustomer(Customer customer) {
+ return new Customer(customer.getId(), customer.getTelephone(), customer.getFavorites(), customer.getCommunicationPreferences());
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getTelephone() {
+ return telephone;
+ }
+
+ public void setTelephone(String telephone) {
+ this.telephone = telephone;
+ }
+
+ public Map getCommunicationPreferences() {
+ return communicationPreferences;
+ }
+
+ public void setCommunicationPreferences(Map communicationPreferences) {
+ this.communicationPreferences = communicationPreferences;
+ }
+
+ public List getFavorites() {
+ return favorites;
+ }
+
+ public void setFavorites(List favorites) {
+ this.favorites = favorites;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Customer)) {
+ return false;
+ }
+ Customer customer = (Customer) o;
+ return Objects.equals(id, customer.id);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/service/CustomerIdGenerator.java b/spring-rest-http/src/main/java/com/baeldung/service/CustomerIdGenerator.java
new file mode 100644
index 0000000000..f4afb79852
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/service/CustomerIdGenerator.java
@@ -0,0 +1,6 @@
+package com.baeldung.service;
+
+public interface CustomerIdGenerator {
+ int generateNextId();
+}
+
diff --git a/spring-rest-http/src/main/java/com/baeldung/service/CustomerService.java b/spring-rest-http/src/main/java/com/baeldung/service/CustomerService.java
new file mode 100644
index 0000000000..51a6bc7474
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/service/CustomerService.java
@@ -0,0 +1,14 @@
+package com.baeldung.service;
+
+import com.baeldung.model.Customer;
+
+import java.util.Optional;
+
+public interface CustomerService {
+
+ Customer createCustomer(Customer customer);
+
+ Optional findCustomer(String id);
+
+ void updateCustomer(Customer customer);
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerIdGeneratorImpl.java b/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerIdGeneratorImpl.java
new file mode 100644
index 0000000000..471fe880b8
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerIdGeneratorImpl.java
@@ -0,0 +1,17 @@
+package com.baeldung.service.impl;
+
+import com.baeldung.service.CustomerIdGenerator;
+
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+@Component
+public class CustomerIdGeneratorImpl implements CustomerIdGenerator {
+ private static final AtomicInteger SEQUENCE = new AtomicInteger();
+
+ @Override
+ public int generateNextId() {
+ return SEQUENCE.incrementAndGet();
+ }
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerServiceImpl.java b/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerServiceImpl.java
new file mode 100644
index 0000000000..c57e95deed
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/service/impl/CustomerServiceImpl.java
@@ -0,0 +1,42 @@
+package com.baeldung.service.impl;
+
+import com.baeldung.model.Customer;
+import com.baeldung.service.CustomerIdGenerator;
+import com.baeldung.service.CustomerService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class CustomerServiceImpl implements CustomerService {
+ private CustomerIdGenerator customerIdGenerator;
+ private List customers = new ArrayList<>();
+
+ @Autowired
+ public CustomerServiceImpl(CustomerIdGenerator customerIdGenerator) {
+ this.customerIdGenerator = customerIdGenerator;
+ }
+
+ @Override
+ public Customer createCustomer(Customer customer) {
+ customer.setId(Integer.toString(customerIdGenerator.generateNextId()));
+ customers.add(customer);
+ return customer;
+ }
+
+ @Override
+ public Optional findCustomer(String id) {
+ return customers.stream()
+ .filter(customer -> customer.getId().equals(id))
+ .findFirst();
+ }
+
+ @Override
+ public void updateCustomer(Customer customer) {
+ customers.set(customers.indexOf(customer), customer);
+ }
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/web/controller/customer/CustomerRestController.java b/spring-rest-http/src/main/java/com/baeldung/web/controller/customer/CustomerRestController.java
new file mode 100644
index 0000000000..edae10de27
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/web/controller/customer/CustomerRestController.java
@@ -0,0 +1,69 @@
+package com.baeldung.web.controller.customer;
+
+import com.baeldung.model.Customer;
+import com.baeldung.service.CustomerService;
+import com.baeldung.web.exception.CustomerNotFoundException;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.fge.jsonpatch.JsonPatch;
+import com.github.fge.jsonpatch.JsonPatchException;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PatchMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
+
+import java.net.URI;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping(value = "/customers")
+public class CustomerRestController {
+ private CustomerService customerService;
+ private ObjectMapper objectMapper = new ObjectMapper();
+
+ @Autowired
+ public CustomerRestController(CustomerService customerService) {
+ this.customerService = customerService;
+ }
+
+ @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
+ public ResponseEntity createCustomer(@RequestBody Customer customer) {
+ Customer customerCreated = customerService.createCustomer(customer);
+ URI location = ServletUriComponentsBuilder.fromCurrentRequest()
+ .path("/{id}")
+ .buildAndExpand(customerCreated.getId())
+ .toUri();
+ return ResponseEntity.created(location).build();
+ }
+
+ @PatchMapping(path = "/{id}", consumes = "application/json-patch+json")
+ public ResponseEntity updateCustomer(@PathVariable String id,
+ @RequestBody JsonPatch patch) {
+ try {
+ Customer customer = customerService.findCustomer(id).orElseThrow(CustomerNotFoundException::new);
+ Customer customerPatched = applyPatchToCustomer(patch, customer);
+ customerService.updateCustomer(customerPatched);
+
+ return ResponseEntity.ok(customerPatched);
+ } catch (CustomerNotFoundException e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
+ } catch (JsonPatchException | JsonProcessingException e) {
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
+ }
+ }
+
+ private Customer applyPatchToCustomer(JsonPatch patch, Customer targetCustomer) throws JsonPatchException, JsonProcessingException {
+ JsonNode patched = patch.apply(objectMapper.convertValue(targetCustomer, JsonNode.class));
+ return objectMapper.treeToValue(patched, Customer.class);
+ }
+}
diff --git a/spring-rest-http/src/main/java/com/baeldung/web/exception/CustomerNotFoundException.java b/spring-rest-http/src/main/java/com/baeldung/web/exception/CustomerNotFoundException.java
new file mode 100644
index 0000000000..c843696402
--- /dev/null
+++ b/spring-rest-http/src/main/java/com/baeldung/web/exception/CustomerNotFoundException.java
@@ -0,0 +1,5 @@
+package com.baeldung.web.exception;
+
+public class CustomerNotFoundException extends RuntimeException {
+
+}
diff --git a/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerIdGeneratorImplUnitTest.java b/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerIdGeneratorImplUnitTest.java
new file mode 100644
index 0000000000..a855c1cda2
--- /dev/null
+++ b/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerIdGeneratorImplUnitTest.java
@@ -0,0 +1,17 @@
+package com.baeldung.service.impl;
+
+import com.baeldung.service.CustomerIdGenerator;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CustomerIdGeneratorImplUnitTest {
+
+ @Test
+ public void givenIdGeneratedPreviously_whenGenerated_thenIdIsIncremented(){
+ CustomerIdGenerator customerIdGenerator = new CustomerIdGeneratorImpl();
+ int firstId = customerIdGenerator.generateNextId();
+ assertThat(customerIdGenerator.generateNextId()).isEqualTo(++firstId);
+ }
+}
diff --git a/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerServiceImplUnitTest.java b/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerServiceImplUnitTest.java
new file mode 100644
index 0000000000..27f0b35714
--- /dev/null
+++ b/spring-rest-http/src/test/java/com/baeldung/service/impl/CustomerServiceImplUnitTest.java
@@ -0,0 +1,94 @@
+package com.baeldung.service.impl;
+
+
+import com.baeldung.model.Customer;
+import com.baeldung.service.CustomerIdGenerator;
+import com.baeldung.service.CustomerService;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+import static com.baeldung.model.Customer.fromCustomer;
+import static java.util.Arrays.asList;
+import static java.util.Optional.empty;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.BDDMockito.given;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CustomerServiceImplUnitTest {
+
+ @Mock
+ private CustomerIdGenerator mockCustomerIdGenerator;
+
+ private CustomerService customerService;
+
+ @Before
+ public void setup() {
+ customerService = new CustomerServiceImpl(mockCustomerIdGenerator);
+ }
+
+ @Test
+ public void whenCustomerIsCreated_thenNewCustomerDetailsAreCorrect() {
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer customer = new Customer("001-555-1234", asList("Milk", "Eggs"), communicationPreferences);
+ given(mockCustomerIdGenerator.generateNextId()).willReturn(1);
+
+ Customer newCustomer = customerService.createCustomer(customer);
+
+ assertThat(newCustomer.getId()).isEqualTo("1");
+ assertThat(newCustomer.getTelephone()).isEqualTo("001-555-1234");
+ assertThat(newCustomer.getFavorites()).containsExactly("Milk", "Eggs");
+ assertThat(newCustomer.getCommunicationPreferences()).isEqualTo(communicationPreferences);
+ }
+
+ @Test
+ public void givenNonExistentCustomer_whenCustomerIsLookedUp_thenCustomerCanNotBeFound() {
+ assertThat(customerService.findCustomer("CUST12345")).isEqualTo(empty());
+ }
+
+ @Test
+ public void whenCustomerIsCreated_thenCustomerCanBeFound() {
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer customer = new Customer("001-555-1234", asList("Milk", "Eggs"), communicationPreferences);
+ given(mockCustomerIdGenerator.generateNextId()).willReturn(7890);
+
+ customerService.createCustomer(customer);
+ Customer lookedUpCustomer = customerService.findCustomer("7890").get();
+
+ assertThat(lookedUpCustomer.getId()).isEqualTo("7890");
+ assertThat(lookedUpCustomer.getTelephone()).isEqualTo("001-555-1234");
+ assertThat(lookedUpCustomer.getFavorites()).containsExactly("Milk", "Eggs");
+ assertThat(lookedUpCustomer.getCommunicationPreferences()).isEqualTo(communicationPreferences);
+ }
+
+ @Test
+ public void whenCustomerUpdated_thenDetailsUpdatedCorrectly() {
+ given(mockCustomerIdGenerator.generateNextId()).willReturn(7890);
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer customer = new Customer("001-555-1234", asList("Milk", "Eggs"), communicationPreferences);
+ Customer newCustomer = customerService.createCustomer(customer);
+
+ Customer customerWithUpdates = fromCustomer(newCustomer);
+ customerWithUpdates.setTelephone("001-555-6789");
+ customerService.updateCustomer(customerWithUpdates);
+ Customer lookedUpCustomer = customerService.findCustomer("7890").get();
+
+ assertThat(lookedUpCustomer.getId()).isEqualTo("7890");
+ assertThat(lookedUpCustomer.getTelephone()).isEqualTo("001-555-6789");
+ assertThat(lookedUpCustomer.getFavorites()).containsExactly("Milk", "Eggs");
+ assertThat(lookedUpCustomer.getCommunicationPreferences()).isEqualTo(communicationPreferences);
+ }
+}
\ No newline at end of file
diff --git a/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerIntegrationTest.java b/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerIntegrationTest.java
new file mode 100644
index 0000000000..535bcb1904
--- /dev/null
+++ b/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerIntegrationTest.java
@@ -0,0 +1,72 @@
+package com.baeldung.web.controller.customer;
+
+import com.baeldung.model.Customer;
+import com.baeldung.service.CustomerService;
+
+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.context.SpringBootTest;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import static java.util.Collections.emptyList;
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class CustomerRestControllerIntegrationTest {
+
+ @Autowired
+ private CustomerService customerService;
+
+ @Autowired
+ private TestRestTemplate testRestTemplate;
+
+ @Before
+ public void setup() {
+ testRestTemplate.getRestTemplate().setRequestFactory(new HttpComponentsClientHttpRequestFactory());
+ }
+
+ @Test
+ public void givenExistingCustomer_whenPatched_thenOnlyPatchedFieldsUpdated() {
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer newCustomer = new Customer("001-555-1234", Arrays.asList("Milk", "Eggs"),
+ communicationPreferences);
+ Customer customer = customerService.createCustomer(newCustomer);
+
+
+ String patchBody = "[ { \"op\": \"replace\", \"path\": \"/telephone\", \"value\": \"001-555-5678\" },\n"
+ + "{\"op\": \"add\", \"path\": \"/favorites/0\", \"value\": \"Bread\" }]";
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.valueOf("application/json-patch+json"));
+ ResponseEntity patchResponse
+ = testRestTemplate.exchange("/customers/{id}",
+ HttpMethod.PATCH,
+ new HttpEntity<>(patchBody, headers),
+ Customer.class,
+ customer.getId());
+
+ Customer customerPatched = patchResponse.getBody();
+ assertThat(patchResponse.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(customerPatched.getId()).isEqualTo(customer.getId());
+ assertThat(customerPatched.getTelephone()).isEqualTo("001-555-5678");
+ assertThat(customerPatched.getCommunicationPreferences().get("post")).isTrue();
+ assertThat(customerPatched.getCommunicationPreferences().get("email")).isTrue();
+ assertThat(customerPatched.getFavorites()).containsExactly("Bread", "Milk", "Eggs");
+ }
+}
diff --git a/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerUnitTest.java b/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerUnitTest.java
new file mode 100644
index 0000000000..6b1293e2c1
--- /dev/null
+++ b/spring-rest-http/src/test/java/com/baeldung/web/controller/customer/CustomerRestControllerUnitTest.java
@@ -0,0 +1,101 @@
+package com.baeldung.web.controller.customer;
+
+import com.baeldung.model.Customer;
+import com.baeldung.service.CustomerService;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static java.util.Arrays.asList;
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
+import static org.hamcrest.CoreMatchers.is;
+import static org.mockito.BDDMockito.given;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrlPattern;
+import static org.springframework.http.MediaType.APPLICATION_JSON;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@AutoConfigureMockMvc
+public class CustomerRestControllerUnitTest {
+
+ private static final String APPLICATION_JSON_PATCH_JSON = "application/json-patch+json";
+
+ @Autowired
+ private MockMvc mvc;
+
+ @MockBean
+ private CustomerService mockCustomerService;
+
+ @Autowired
+ ApplicationContext context;
+
+ @Test
+ public void whenCustomerCreated_then201ReturnedWithNewCustomerLocation() throws Exception {
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer customer = new Customer("001-555-1234", asList("Milk", "Eggs"), communicationPreferences);
+
+ Customer persistedCustomer = Customer.fromCustomer(customer);
+ persistedCustomer.setId("1");
+
+ given(mockCustomerService.createCustomer(customer)).willReturn(persistedCustomer);
+
+ String createCustomerRequestBody = "{"
+ + "\"telephone\": \"001-555-1234\",\n"
+ + "\"favorites\": [\"Milk\", \"Eggs\"],\n"
+ + "\"communicationPreferences\": {\"post\":true, \"email\":true}\n"
+ + "}";
+ mvc.perform(post("/customers")
+ .contentType(APPLICATION_JSON)
+ .content(createCustomerRequestBody))
+ .andExpect(status().isCreated())
+ .andExpect(redirectedUrlPattern("http://*/customers/1"));
+ }
+
+ @Test
+ public void givenNonExistentCustomer_whenPatched_then404Returned() throws Exception {
+ given(mockCustomerService.findCustomer("1")).willReturn(empty());
+
+ String patchInstructions = "[{\"op\":\"replace\",\"path\": \"/telephone\",\"value\":\"001-555-5678\"}]";
+ mvc.perform(patch("/customers/1")
+ .contentType(APPLICATION_JSON_PATCH_JSON)
+ .content(patchInstructions))
+ .andExpect(status().isNotFound());
+ }
+
+ @Test
+ public void givenExistingCustomer_whenPatched_thenReturnPatchedCustomer() throws Exception {
+ Map communicationPreferences = new HashMap<>();
+ communicationPreferences.put("post", true);
+ communicationPreferences.put("email", true);
+ Customer customer = new Customer("1", "001-555-1234", asList("Milk", "Eggs"), communicationPreferences);
+
+ given(mockCustomerService.findCustomer("1")).willReturn(of(customer));
+
+ String patchInstructions = "[{\"op\":\"replace\",\"path\": \"/telephone\",\"value\":\"001-555-5678\"}]";
+ mvc.perform(patch("/customers/1")
+ .contentType(APPLICATION_JSON_PATCH_JSON)
+ .content(patchInstructions))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.id", is("1")))
+ .andExpect(jsonPath("$.telephone", is("001-555-5678")))
+ .andExpect(jsonPath("$.favorites", is(asList("Milk", "Eggs"))))
+ .andExpect(jsonPath("$.communicationPreferences", is(communicationPreferences)));
+ }
+}
diff --git a/spring-scheduling/README.md b/spring-scheduling/README.md
index 2e3bb2b5e5..ddc540bafb 100644
--- a/spring-scheduling/README.md
+++ b/spring-scheduling/README.md
@@ -3,4 +3,5 @@
- [The @Scheduled Annotation in Spring](https://www.baeldung.com/spring-scheduled-tasks)
- [Guide to Spring Retry](http://www.baeldung.com/spring-retry)
- [How To Do @Async in Spring](http://www.baeldung.com/spring-async)
+- [Conditionally Enable Scheduled Jobs in Spring](https://www.baeldung.com/spring-scheduled-enabled-conditionally)
diff --git a/spring-scheduling/pom.xml b/spring-scheduling/pom.xml
index 8726fea438..b27f33196d 100644
--- a/spring-scheduling/pom.xml
+++ b/spring-scheduling/pom.xml
@@ -27,6 +27,10 @@
org.springframeworkspring-aspects
+
+ org.springframework.boot
+ spring-boot-starter-web
+ javax.annotationjavax.annotation-api
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduleJobsByProfile.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduleJobsByProfile.java
similarity index 91%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduleJobsByProfile.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduleJobsByProfile.java
index 33cd44331f..7783d0e6ff 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduleJobsByProfile.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduleJobsByProfile.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJob.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJob.java
similarity index 91%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJob.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJob.java
index df7cefcd3c..b56cb9ed5b 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJob.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJob.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithBoolean.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithBoolean.java
similarity index 94%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithBoolean.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithBoolean.java
index b03de61641..69c0efb7b2 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithBoolean.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithBoolean.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithConditional.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithConditional.java
similarity index 93%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithConditional.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithConditional.java
index 081c8d990a..2a90300c20 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithConditional.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithConditional.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithExpression.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithExpression.java
similarity index 93%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithExpression.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithExpression.java
index 577a01f241..4842e649c7 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/ScheduledJobsWithExpression.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/ScheduledJobsWithExpression.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/SchedulingApplication.java b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/SchedulingApplication.java
similarity index 89%
rename from spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/SchedulingApplication.java
rename to spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/SchedulingApplication.java
index 913e2137f8..4777230341 100644
--- a/spring-boot-modules/spring-boot-mvc/src/main/java/com/baeldung/scheduling/SchedulingApplication.java
+++ b/spring-scheduling/src/main/java/com/baeldung/scheduling/conditional/SchedulingApplication.java
@@ -1,4 +1,4 @@
-package com.baeldung.scheduling;
+package com.baeldung.scheduling.conditional;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/spring-security-modules/pom.xml b/spring-security-modules/pom.xml
index 7de3009f47..49a0db03ed 100644
--- a/spring-security-modules/pom.xml
+++ b/spring-security-modules/pom.xml
@@ -21,17 +21,17 @@
spring-security-corsspring-security-kerberosspring-security-mvc
- spring-security-mvc-boot
+ spring-security-mvc-boot-1
+ spring-security-mvc-boot-2spring-security-mvc-customspring-security-mvc-digest-authspring-security-mvc-jsonview
- spring-security-mvc-ldap
+ spring-security-ldapspring-security-mvc-loginspring-security-mvc-persisted-remember-mespring-security-mvc-socketspring-security-oidcspring-security-react
-
spring-security-restspring-security-rest-basic-authspring-security-rest-custom
diff --git a/spring-security-modules/spring-security-mvc-ldap/README.md b/spring-security-modules/spring-security-ldap/README.md
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/README.md
rename to spring-security-modules/spring-security-ldap/README.md
diff --git a/spring-security-modules/spring-security-mvc-ldap/pom.xml b/spring-security-modules/spring-security-ldap/pom.xml
similarity index 95%
rename from spring-security-modules/spring-security-mvc-ldap/pom.xml
rename to spring-security-modules/spring-security-ldap/pom.xml
index 2f227d7908..f5e8856648 100644
--- a/spring-security-modules/spring-security-mvc-ldap/pom.xml
+++ b/spring-security-modules/spring-security-ldap/pom.xml
@@ -2,9 +2,9 @@
4.0.0
- spring-security-mvc-ldap
+ spring-security-ldap0.1-SNAPSHOT
- spring-security-mvc-ldap
+ spring-security-ldapwar
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/SampleLDAPApplication.java b/spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/SampleLDAPApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/SampleLDAPApplication.java
rename to spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/SampleLDAPApplication.java
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/controller/MyController.java b/spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/controller/MyController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/controller/MyController.java
rename to spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/controller/MyController.java
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/security/SecurityConfig.java b/spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/security/SecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/java/org/baeldung/security/SecurityConfig.java
rename to spring-security-modules/spring-security-ldap/src/main/java/org/baeldung/security/SecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/logback.xml b/spring-security-modules/spring-security-ldap/src/main/resources/logback.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/logback.xml
rename to spring-security-modules/spring-security-ldap/src/main/resources/logback.xml
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/static/css/bootstrap.min.css b/spring-security-modules/spring-security-ldap/src/main/resources/static/css/bootstrap.min.css
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/static/css/bootstrap.min.css
rename to spring-security-modules/spring-security-ldap/src/main/resources/static/css/bootstrap.min.css
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/error.html b/spring-security-modules/spring-security-ldap/src/main/resources/templates/error.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/error.html
rename to spring-security-modules/spring-security-ldap/src/main/resources/templates/error.html
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/home.html b/spring-security-modules/spring-security-ldap/src/main/resources/templates/home.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/home.html
rename to spring-security-modules/spring-security-ldap/src/main/resources/templates/home.html
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/login.html b/spring-security-modules/spring-security-ldap/src/main/resources/templates/login.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/templates/login.html
rename to spring-security-modules/spring-security-ldap/src/main/resources/templates/login.html
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/users.ldif b/spring-security-modules/spring-security-ldap/src/main/resources/users.ldif
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/users.ldif
rename to spring-security-modules/spring-security-ldap/src/main/resources/users.ldif
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/main/resources/webSecurityConfig.xml b/spring-security-modules/spring-security-ldap/src/main/resources/webSecurityConfig.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/main/resources/webSecurityConfig.xml
rename to spring-security-modules/spring-security-ldap/src/main/resources/webSecurityConfig.xml
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/test/java/org/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-ldap/src/test/java/org/baeldung/SpringContextTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/test/java/org/baeldung/SpringContextTest.java
rename to spring-security-modules/spring-security-ldap/src/test/java/org/baeldung/SpringContextTest.java
diff --git a/spring-security-modules/spring-security-mvc-ldap/src/test/resources/.gitignore b/spring-security-modules/spring-security-ldap/src/test/resources/.gitignore
similarity index 100%
rename from spring-security-modules/spring-security-mvc-ldap/src/test/resources/.gitignore
rename to spring-security-modules/spring-security-ldap/src/test/resources/.gitignore
diff --git a/spring-security-modules/spring-security-mvc-boot/README.md b/spring-security-modules/spring-security-mvc-boot-1/README.md
similarity index 62%
rename from spring-security-modules/spring-security-mvc-boot/README.md
rename to spring-security-modules/spring-security-mvc-boot-1/README.md
index a1056cc130..f2c161d387 100644
--- a/spring-security-modules/spring-security-mvc-boot/README.md
+++ b/spring-security-modules/spring-security-mvc-boot-1/README.md
@@ -1,4 +1,4 @@
-## Spring Boot Security MVC
+## Spring Boot Security MVC - 1
This module contains articles about Spring Security with Spring MVC in Boot applications
@@ -9,13 +9,9 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com
- [A Custom Security Expression with Spring Security](https://www.baeldung.com/spring-security-create-new-custom-security-expression)
- [Custom AccessDecisionVoters in Spring Security](https://www.baeldung.com/spring-security-custom-voter)
- [Spring Security: Authentication with a Database-backed UserDetailsService](https://www.baeldung.com/spring-security-authentication-with-a-database)
-- [Two Login Pages with Spring Security](https://www.baeldung.com/spring-security-two-login-pages)
-- [Multiple Entry Points in Spring Security](https://www.baeldung.com/spring-security-multiple-entry-points)
-- [Multiple Authentication Providers in Spring Security](https://www.baeldung.com/spring-security-multiple-auth-providers)
-- [Granted Authority Versus Role in Spring Security](https://www.baeldung.com/spring-security-granted-authority-vs-role)
- [Spring Data with Spring Security](https://www.baeldung.com/spring-data-security)
+- [Granted Authority Versus Role in Spring Security](https://www.baeldung.com/spring-security-granted-authority-vs-role)
- [Spring Security – Whitelist IP Range](https://www.baeldung.com/spring-security-whitelist-ip-range)
- [Find the Registered Spring Security Filters](https://www.baeldung.com/spring-security-registered-filters)
-- [HTTPS using Self-Signed Certificate in Spring Boot](https://www.baeldung.com/spring-boot-https-self-signed-certificate)
-- [Spring Security: Exploring JDBC Authentication](https://www.baeldung.com/spring-security-jdbc-authentication)
+- More articles: [[next -->]](/../spring-security-mvc-boot-2)
diff --git a/spring-security-modules/spring-security-mvc-boot/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/WebContent/META-INF/MANIFEST.MF
rename to spring-security-modules/spring-security-mvc-boot-1/WebContent/META-INF/MANIFEST.MF
diff --git a/spring-security-modules/spring-security-mvc-boot-1/pom.xml b/spring-security-modules/spring-security-mvc-boot-1/pom.xml
new file mode 100644
index 0000000000..3eeac80d2c
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-1/pom.xml
@@ -0,0 +1,240 @@
+
+
+ 4.0.0
+ spring-security-mvc-boot-1
+ 0.0.1-SNAPSHOT
+ spring-security-mvc-boot-1
+ war
+ Spring Security MVC Boot - 1
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ org.thymeleaf.extras
+ thymeleaf-extras-springsecurity5
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.security
+ spring-security-data
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+ com.h2database
+ h2
+
+
+ org.postgresql
+ postgresql
+ runtime
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+ org.springframework
+ spring-test
+ test
+
+
+ org.springframework.security
+ spring-security-test
+ test
+
+
+ taglibs
+ standard
+ ${taglibs-standard.version}
+
+
+ org.springframework.security
+ spring-security-taglibs
+
+
+ org.springframework.security
+ spring-security-core
+
+
+ javax.servlet.jsp.jstl
+ jstl-api
+ ${jstl.version}
+
+
+ org.springframework.security
+ spring-security-config
+
+
+ org.springframework
+ spring-context-support
+
+
+ net.sf.ehcache
+ ehcache-core
+ ${ehcache-core.version}
+ jar
+
+
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+ true
+
+ tomcat8x
+ embedded
+
+
+
+
+
+
+ 8082
+
+
+
+
+
+
+
+
+
+ live
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*LiveTest.java
+
+
+ cargo
+
+
+
+
+
+
+
+
+
+
+ entryPoints
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+ **/*EntryPointsTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
+
+
+ org.baeldung.custom.Application
+
+
+
+ 1.1.2
+ 1.6.1
+ 2.6.11
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/AppConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/AppConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/AppConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/AppConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/SpringSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/SpringSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/SpringSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/SpringSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/TweetRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/data/repositories/TweetRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/TweetRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/data/repositories/TweetRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/UserRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/data/repositories/UserRepository.java
similarity index 96%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/UserRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/data/repositories/UserRepository.java
index 9f13c3197e..5240c683e0 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/UserRepository.java
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/data/repositories/UserRepository.java
@@ -13,7 +13,6 @@ import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.baeldung.models.AppUser;
-import com.baeldung.models.Tweet;
public interface UserRepository extends CrudRepository {
AppUser findByUsername(String username);
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/AppUser.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/models/AppUser.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/AppUser.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/models/AppUser.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/models/Tweet.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/models/Tweet.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/AppUserPrincipal.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/AppUserPrincipal.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/AppUserPrincipal.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/AppUserPrincipal.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/CustomUserDetailsService.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/CustomUserDetailsService.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/security/CustomUserDetailsService.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/security/CustomUserDetailsService.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/util/DummyContentUtil.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/util/DummyContentUtil.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/util/DummyContentUtil.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/com/baeldung/util/DummyContentUtil.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/Application.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/Application.java
similarity index 84%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/Application.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/Application.java
index 2bd0da48d2..e051e5a853 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/Application.java
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/Application.java
@@ -3,9 +3,11 @@ package org.baeldung.custom;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
@SpringBootApplication
+@ComponentScan("org.baeldung.custom")
@PropertySource("classpath:application-defaults.properties")
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/MethodSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/MethodSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/MethodSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/MethodSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/MvcConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/MvcConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/MvcConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/MvcConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/SecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/SecurityConfig.java
new file mode 100644
index 0000000000..06357650dc
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/config/SecurityConfig.java
@@ -0,0 +1,31 @@
+package org.baeldung.custom.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+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.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
+
+ @Override
+ protected void configure(final HttpSecurity http) throws Exception {
+ http.csrf()
+ .disable()
+ .authorizeRequests()
+ .anyRequest()
+ .authenticated()
+ .and()
+ .formLogin()
+ .permitAll();
+ }
+
+ @Bean
+ public PasswordEncoder encoder() {
+ return new BCryptPasswordEncoder(11);
+ }
+}
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/SetupData.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/SetupData.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/SetupData.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/SetupData.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/OrganizationRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/OrganizationRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/OrganizationRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/OrganizationRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/PrivilegeRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/PrivilegeRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/PrivilegeRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/PrivilegeRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/UserRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/UserRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/dao/UserRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/dao/UserRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Foo.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Foo.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Foo.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Foo.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Organization.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Organization.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Organization.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Organization.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Privilege.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Privilege.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/Privilege.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/Privilege.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/User.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/User.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/persistence/model/User.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/persistence/model/User.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionHandler.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionHandler.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionHandler.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionHandler.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionRoot.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionRoot.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionRoot.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomMethodSecurityExpressionRoot.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomPermissionEvaluator.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomPermissionEvaluator.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/CustomPermissionEvaluator.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/CustomPermissionEvaluator.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MySecurityExpressionRoot.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MySecurityExpressionRoot.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MySecurityExpressionRoot.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MySecurityExpressionRoot.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MyUserDetailsService.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MyUserDetailsService.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MyUserDetailsService.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MyUserDetailsService.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MyUserPrincipal.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MyUserPrincipal.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/security/MyUserPrincipal.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/security/MyUserPrincipal.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/web/MainController.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/web/MainController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/web/MainController.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/custom/web/MainController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/IpApplication.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/IpApplication.java
similarity index 85%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/IpApplication.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/IpApplication.java
index b68abbaed1..d77414c54e 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/IpApplication.java
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/IpApplication.java
@@ -3,9 +3,11 @@ package org.baeldung.ip;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
@SpringBootApplication
+@ComponentScan("org.baeldung.ip")
@PropertySource("classpath:application-defaults.properties")
public class IpApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/CustomIpAuthenticationProvider.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/CustomIpAuthenticationProvider.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/CustomIpAuthenticationProvider.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/CustomIpAuthenticationProvider.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/SecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/SecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/SecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/SecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/SecurityXmlConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/SecurityXmlConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/config/SecurityXmlConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/config/SecurityXmlConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/web/MainController.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/web/MainController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ip/web/MainController.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/ip/web/MainController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/CustomAuthenticationProvider.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/CustomAuthenticationProvider.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/CustomAuthenticationProvider.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/MyLogoutSuccessHandler.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/MyLogoutSuccessHandler.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/MyLogoutSuccessHandler.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/MyLogoutSuccessHandler.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/MyUserDetailsService.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/MyUserDetailsService.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/MyUserDetailsService.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/MyUserDetailsService.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/RolesAuthoritiesApplication.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/RolesAuthoritiesApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/RolesAuthoritiesApplication.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/RolesAuthoritiesApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/config/MvcConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/config/MvcConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/config/MvcConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/config/MvcConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/config/SecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/config/SecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/config/SecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/config/SecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/Privilege.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/Privilege.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/Privilege.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/Privilege.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/Role.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/Role.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/Role.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/Role.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/User.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/User.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/model/User.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/model/User.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/IUserService.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/IUserService.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/IUserService.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/IUserService.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/PrivilegeRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/PrivilegeRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/PrivilegeRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/PrivilegeRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/RoleRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/RoleRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/RoleRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/RoleRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/SetupDataLoader.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/SetupDataLoader.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/SetupDataLoader.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/SetupDataLoader.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/UserRepository.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/UserRepository.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/UserRepository.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/UserRepository.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/UserService.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/UserService.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/rolesauthorities/persistence/UserService.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/rolesauthorities/persistence/UserService.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/MinuteBasedVoter.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/MinuteBasedVoter.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/MinuteBasedVoter.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/MinuteBasedVoter.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/VoterApplication.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/VoterApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/VoterApplication.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/VoterApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/VoterMvcConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/VoterMvcConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/VoterMvcConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/VoterMvcConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/WebSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/WebSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/WebSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/WebSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/XmlSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/XmlSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/voter/XmlSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/java/org/baeldung/voter/XmlSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/application-defaults.properties
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application-defaults.properties
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/application.properties b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/application.properties
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/application.properties
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/logback.xml b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/logback.xml
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/logback.xml
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/persistence-h2.properties
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/persistence-h2.properties
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-custom-voter.xml b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-custom-voter.xml
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-custom-voter.xml
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-ip.xml b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-ip.xml
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/spring-security-ip.xml
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/403.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/403.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/403.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/index.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/index.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/index.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/login.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/login.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/login.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/loginAdmin.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginAdmin.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/loginUser.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/loginUser.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/login.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/login.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/loginWithWarning.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/loginWithWarning.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myAdminPage.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myAdminPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myGuestPage.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myGuestPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/multipleHttpElems/myUserPage.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/multipleHttpElems/myUserPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/private.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/private.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/private.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/home.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/home.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/home.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/login.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/login.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/login.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbyauthority.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbyauthority.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyauthority.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbynothing.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbynothing.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbynothing.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbyrole.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/rolesauthorities/protectedbyrole.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/rolesauthorities/protectedbyrole.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/ssl/welcome.html
rename to spring-security-modules/spring-security-mvc-boot-1/src/main/resources/templates/ssl/welcome.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/SpringContextTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/SpringContextTest.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/SpringContextTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/ApplicationLiveTest.java b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/ApplicationLiveTest.java
similarity index 96%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/ApplicationLiveTest.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/ApplicationLiveTest.java
index dfcfcad609..e199411e58 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/ApplicationLiveTest.java
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/ApplicationLiveTest.java
@@ -13,7 +13,7 @@ import io.restassured.specification.RequestSpecification;
import org.junit.Test;
import org.springframework.http.MediaType;
-
+// In order to execute these tests, org.baeldung.custom.Application needs to be running.
public class ApplicationLiveTest {
@Test
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/CustomUserDetailsServiceIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/CustomUserDetailsServiceIntegrationTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/CustomUserDetailsServiceIntegrationTest.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/CustomUserDetailsServiceIntegrationTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/IpLiveTest.java b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/IpLiveTest.java
similarity index 90%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/IpLiveTest.java
rename to spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/IpLiveTest.java
index e12e2f87b0..761f5450f7 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/IpLiveTest.java
+++ b/spring-security-modules/spring-security-mvc-boot-1/src/test/java/org/baeldung/web/IpLiveTest.java
@@ -8,6 +8,7 @@ import io.restassured.response.Response;
import org.junit.Test;
+// In order to execute these tests, org.baeldung.ip.IpApplication needs to be running.
public class IpLiveTest {
@Test
diff --git a/spring-security-modules/spring-security-mvc-boot-2/README.md b/spring-security-modules/spring-security-mvc-boot-2/README.md
new file mode 100644
index 0000000000..3c95086d21
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/README.md
@@ -0,0 +1,13 @@
+## Spring Boot Security MVC
+
+This module contains articles about Spring Security with Spring MVC in Boot applications
+
+### The Course
+The "REST With Spring" Classes: http://github.learnspringsecurity.com
+
+### Relevant Articles:
+- [Multiple Entry Points in Spring Security](https://www.baeldung.com/spring-security-multiple-entry-points)
+- [Multiple Authentication Providers in Spring Security](https://www.baeldung.com/spring-security-multiple-auth-providers)
+- [Two Login Pages with Spring Security](https://www.baeldung.com/spring-security-two-login-pages)
+- [HTTPS using Self-Signed Certificate in Spring Boot](https://www.baeldung.com/spring-boot-https-self-signed-certificate)
+- [Spring Security: Exploring JDBC Authentication](https://www.baeldung.com/spring-security-jdbc-authentication)
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF b/spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..254272e1c0
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/spring-security-modules/spring-security-mvc-boot/pom.xml b/spring-security-modules/spring-security-mvc-boot-2/pom.xml
similarity index 96%
rename from spring-security-modules/spring-security-mvc-boot/pom.xml
rename to spring-security-modules/spring-security-mvc-boot-2/pom.xml
index 489ec2d427..fca38b9714 100644
--- a/spring-security-modules/spring-security-mvc-boot/pom.xml
+++ b/spring-security-modules/spring-security-mvc-boot-2/pom.xml
@@ -3,11 +3,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- spring-security-mvc-boot
+ spring-security-mvc-boot-20.0.1-SNAPSHOT
- spring-security-mvc-boot
+ spring-security-mvc-boot-2war
- Spring Security MVC Boot
+ Spring Security MVC Boot - 2com.baeldung
@@ -228,9 +228,6 @@
org.baeldung.custom.Application
-
-
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/H2JdbcAuthenticationApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/config/SecurityConfiguration.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/web/UserController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/web/UserController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/h2/web/UserController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/h2/web/UserController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/MySqlJdbcAuthenticationApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/config/SecurityConfiguration.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/web/UserController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/web/UserController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/mysql/web/UserController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/mysql/web/UserController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/PostgreJdbcAuthenticationApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/config/SecurityConfiguration.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/web/UserController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/web/UserController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/jdbcauthentication/postgre/web/UserController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/jdbcauthentication/postgre/web/UserController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/CustomAuthenticationProvider.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/CustomAuthenticationProvider.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/CustomAuthenticationProvider.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/CustomAuthenticationProvider.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleauthproviders/MultipleAuthProvidersSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/MultipleEntryPointsSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/PagesController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/PagesController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multipleentrypoints/PagesController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multipleentrypoints/PagesController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginMvcConfig.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginMvcConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginMvcConfig.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginMvcConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginSecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginSecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/MultipleLoginSecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/MultipleLoginSecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/UsersController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/UsersController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/multiplelogin/UsersController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/multiplelogin/UsersController.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/HttpsEnabledApplication.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/HttpsEnabledApplication.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/HttpsEnabledApplication.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/HttpsEnabledApplication.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/SecurityConfig.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/SecurityConfig.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/SecurityConfig.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/SecurityConfig.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/WelcomeController.java b/spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/WelcomeController.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/ssl/WelcomeController.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/java/org/baeldung/ssl/WelcomeController.java
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties
new file mode 100644
index 0000000000..e2032c4a6b
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-defaults.properties
@@ -0,0 +1,13 @@
+spring.datasource.driver-class-name=org.h2.Driver
+spring.datasource.url=jdbc:h2:mem:security_permission;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
+spring.datasource.username=sa
+spring.datasource.password=
+spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.database=H2
+spring.jpa.show-sql=false
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+#logging.level.org.springframework.security.web.FilterChainProxy=DEBUG
+
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-console
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/application-mysql.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/application-mysql.properties
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-mysql.properties
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/application-postgre.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/application-postgre.properties
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-postgre.properties
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/application-ssl.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/application-ssl.properties
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application-ssl.properties
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties
new file mode 100644
index 0000000000..3cf12afeb9
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/application.properties
@@ -0,0 +1 @@
+server.port=8082
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/data-mysql.sql b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/data-mysql.sql
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-mysql.sql
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/data-postgre.sql b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/data-postgre.sql
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/data-postgre.sql
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/keystore/baeldung.p12 b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/keystore/baeldung.p12
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/keystore/baeldung.p12
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties
new file mode 100644
index 0000000000..a4b2af6361
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/persistence-h2.properties
@@ -0,0 +1,8 @@
+driverClassName=org.h2.Driver
+url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1
+username=sa
+password=
+
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+hibernate.show_sql=false
+hibernate.hbm2ddl.auto=create-drop
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/schema-mysql.sql b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/schema-mysql.sql
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-mysql.sql
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/schema-postgre.sql b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/schema-postgre.sql
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/schema-postgre.sql
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-multiple-auth-providers.xml b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-multiple-auth-providers.xml
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-auth-providers.xml
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-multiple-entry.xml b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/spring-security-multiple-entry.xml
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/spring-security-multiple-entry.xml
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html
new file mode 100644
index 0000000000..20550768cf
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/403.html
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+You do not have permission to view this page.
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/adminPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/adminPage.html
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/adminPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html
new file mode 100644
index 0000000000..8e7394ad6a
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+Spring Security Thymeleaf
+
+
+
+
+
+
+ Welcome
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html
new file mode 100644
index 0000000000..dd6bd04767
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/login.html
@@ -0,0 +1,27 @@
+
+
+
+
+
Login
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html
new file mode 100644
index 0000000000..43d0e73233
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginAdmin.html
@@ -0,0 +1,31 @@
+
+
+
+
+Insert title here
+
+
+
+
Admin login page
+
+
+
Login failed!
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html
new file mode 100644
index 0000000000..bf4ddd48bc
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/loginUser.html
@@ -0,0 +1,30 @@
+
+
+
+
+Login
+
+
+
+
User login page
+
+
+
Login failed!
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html
new file mode 100644
index 0000000000..2119baec66
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/login.html
@@ -0,0 +1,27 @@
+
+
+
+
+
Login
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html
new file mode 100644
index 0000000000..a5b2eaf3dc
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/loginWithWarning.html
@@ -0,0 +1,28 @@
+
+
+
+
+
Login
+
Warning! You are about to access sensible data!
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html
new file mode 100644
index 0000000000..676badb16f
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/multipleHttpLinks.html
@@ -0,0 +1,18 @@
+
+
+
+
+Multiple Http Elements Links
+
+
+
+Admin page
+
+User page
+
+Private user page
+
+Guest page
+
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html
new file mode 100644
index 0000000000..3003833562
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myAdminPage.html
@@ -0,0 +1,13 @@
+
+
+
+
+Admin Page
+
+
+Welcome admin!
+
+
+Back to links
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html
new file mode 100644
index 0000000000..47a4c9c44a
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myGuestPage.html
@@ -0,0 +1,13 @@
+
+
+
+
+Guest Page
+
+
+Welcome guest!
+
+
+Back to links
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html
new file mode 100644
index 0000000000..52045ec320
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myPrivateUserPage.html
@@ -0,0 +1,13 @@
+
+
+
+
+Insert title here
+
+
+Welcome user to your private page! Logout
+
+
+Back to links
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html
new file mode 100644
index 0000000000..f6c2def0b8
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/multipleHttpElems/myUserPage.html
@@ -0,0 +1,13 @@
+
+
+
+
+User Page
+
+
+Welcome user! Logout
+
+
+Back to links
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html
new file mode 100644
index 0000000000..035d84bbbd
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/private.html
@@ -0,0 +1,10 @@
+
+
+
+ Private
+
+
+
Congrats!
+
+
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/protectedLinks.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/protectedLinks.html
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/protectedLinks.html
diff --git a/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html
new file mode 100644
index 0000000000..93b3577f5c
--- /dev/null
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/ssl/welcome.html
@@ -0,0 +1 @@
+
Welcome to Secured Site
\ No newline at end of file
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/userPage.html b/spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/main/resources/templates/userPage.html
rename to spring-security-modules/spring-security-mvc-boot-2/src/main/resources/templates/userPage.html
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java
similarity index 85%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java
index 7aa26ff031..659dad9155 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/h2/SpringContextTest.java
@@ -1,5 +1,6 @@
package org.baeldung.jdbcauthentication.h2;
+import org.baeldung.jdbcauthentication.h2.H2JdbcAuthenticationApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/h2/web/UserControllerLiveTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/mysql/web/UserControllerLiveTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/jdbcauthentication/postgre/web/UserControllerLiveTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/HttpsApplicationIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/HttpsApplicationIntegrationTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/HttpsApplicationIntegrationTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/HttpsApplicationIntegrationTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java
similarity index 100%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/MultipleAuthProvidersApplicationIntegrationTest.java
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java
similarity index 99%
rename from spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java
rename to spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java
index 157480c3f1..422be2ac88 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java
+++ b/spring-security-modules/spring-security-mvc-boot-2/src/test/java/org/baeldung/web/MultipleEntryPointsIntegrationTest.java
@@ -1,6 +1,5 @@
package org.baeldung.web;
-import org.baeldung.multipleentrypoints.MultipleEntryPointsApplication;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -15,6 +14,9 @@ import org.springframework.web.context.WebApplicationContext;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+import org.baeldung.multipleentrypoints.MultipleEntryPointsApplication;
+
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*;
@RunWith(SpringRunner.class)
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/SecurityConfig.java b/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/SecurityConfig.java
deleted file mode 100644
index 739e4d3417..0000000000
--- a/spring-security-modules/spring-security-mvc-boot/src/main/java/org/baeldung/custom/config/SecurityConfig.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.baeldung.custom.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-
-@Configuration
-public class SecurityConfig {
-
- @Bean
- public PasswordEncoder encoder() {
- return new BCryptPasswordEncoder(11);
- }
-}
\ No newline at end of file
diff --git a/spring-threads/pom.xml b/spring-threads/pom.xml
new file mode 100644
index 0000000000..4513c627b9
--- /dev/null
+++ b/spring-threads/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+ spring-threads
+ 0.0.1-SNAPSHOT
+ spring-threads
+ jar
+
+
+ com.baeldung
+ parent-spring-5
+ 0.0.1-SNAPSHOT
+ ../parent-spring-5
+
+
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+
+
diff --git a/spring-threads/src/test/java/com/baeldung/threading/ThreadPoolTaskExecutorUnitTest.java b/spring-threads/src/test/java/com/baeldung/threading/ThreadPoolTaskExecutorUnitTest.java
new file mode 100644
index 0000000000..0d927ebe69
--- /dev/null
+++ b/spring-threads/src/test/java/com/baeldung/threading/ThreadPoolTaskExecutorUnitTest.java
@@ -0,0 +1,98 @@
+package com.baeldung.threading;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ThreadLocalRandom;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+public class ThreadPoolTaskExecutorUnitTest {
+
+ void startThreads(ThreadPoolTaskExecutor taskExecutor, CountDownLatch countDownLatch, int numThreads) {
+ for (int i = 0; i < numThreads; i++) {
+ taskExecutor.execute(() -> {
+ try {
+ Thread.sleep(100L * ThreadLocalRandom.current().nextLong(1, 10));
+ countDownLatch.countDown();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ });
+ }
+ }
+
+ @Test
+ public void whenUsingDefaults_thenSingleThread() {
+ ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+ taskExecutor.afterPropertiesSet();
+
+ CountDownLatch countDownLatch = new CountDownLatch(10);
+ this.startThreads(taskExecutor, countDownLatch, 10);
+
+ while (countDownLatch.getCount() > 0) {
+ Assert.assertEquals(1, taskExecutor.getPoolSize());
+ }
+ }
+
+ @Test
+ public void whenCorePoolSizeFive_thenFiveThreads() {
+ ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+ taskExecutor.setCorePoolSize(5);
+ taskExecutor.afterPropertiesSet();
+
+ CountDownLatch countDownLatch = new CountDownLatch(10);
+ this.startThreads(taskExecutor, countDownLatch, 10);
+
+ while (countDownLatch.getCount() > 0) {
+ Assert.assertEquals(5, taskExecutor.getPoolSize());
+ }
+ }
+
+ @Test
+ public void whenCorePoolSizeFiveAndMaxPoolSizeTen_thenFiveThreads() {
+ ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+ taskExecutor.setCorePoolSize(5);
+ taskExecutor.setMaxPoolSize(10);
+ taskExecutor.afterPropertiesSet();
+
+ CountDownLatch countDownLatch = new CountDownLatch(10);
+ this.startThreads(taskExecutor, countDownLatch, 10);
+
+ while (countDownLatch.getCount() > 0) {
+ Assert.assertEquals(5, taskExecutor.getPoolSize());
+ }
+ }
+
+ @Test
+ public void whenCorePoolSizeFiveAndMaxPoolSizeTenAndQueueCapacityZero_thenTenThreads() {
+ ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+ taskExecutor.setCorePoolSize(5);
+ taskExecutor.setMaxPoolSize(10);
+ taskExecutor.setQueueCapacity(0);
+ taskExecutor.afterPropertiesSet();
+
+ CountDownLatch countDownLatch = new CountDownLatch(10);
+ this.startThreads(taskExecutor, countDownLatch, 10);
+
+ while (countDownLatch.getCount() > 0) {
+ Assert.assertEquals(10, taskExecutor.getPoolSize());
+ }
+ }
+
+ @Test
+ public void whenCorePoolSizeFiveAndMaxPoolSizeTenAndQueueCapacityTen_thenTenThreads() {
+ ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
+ taskExecutor.setCorePoolSize(5);
+ taskExecutor.setMaxPoolSize(10);
+ taskExecutor.setQueueCapacity(10);
+ taskExecutor.afterPropertiesSet();
+
+ CountDownLatch countDownLatch = new CountDownLatch(20);
+ this.startThreads(taskExecutor, countDownLatch, 20);
+
+ while (countDownLatch.getCount() > 0) {
+ Assert.assertEquals(10, taskExecutor.getPoolSize());
+ }
+ }
+}
diff --git a/testing-modules/junit5-annotations/pom.xml b/testing-modules/junit5-annotations/pom.xml
index 080844c30b..d0fba4d21b 100644
--- a/testing-modules/junit5-annotations/pom.xml
+++ b/testing-modules/junit5-annotations/pom.xml
@@ -49,8 +49,8 @@
- 5.4.2
- 1.4.2
+ 5.6.0
+ 1.6.02.8.2
diff --git a/testing-modules/junit5-annotations/src/test/java/com/baeldung/junit5/conditional/ConditionalAnnotationsUnitTest.java b/testing-modules/junit5-annotations/src/test/java/com/baeldung/junit5/conditional/ConditionalAnnotationsUnitTest.java
index ddceb78cac..ba840a1c33 100644
--- a/testing-modules/junit5-annotations/src/test/java/com/baeldung/junit5/conditional/ConditionalAnnotationsUnitTest.java
+++ b/testing-modules/junit5-annotations/src/test/java/com/baeldung/junit5/conditional/ConditionalAnnotationsUnitTest.java
@@ -10,6 +10,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class ConditionalAnnotationsUnitTest {
+
@Test
@EnabledOnOs({OS.WINDOWS, OS.MAC})
public void shouldRunBothWindowsAndMac() {
@@ -28,6 +29,18 @@ public class ConditionalAnnotationsUnitTest {
System.out.println("runs with java 10 and 11");
}
+ @Test
+ @EnabledForJreRange(min = JRE.JAVA_8, max = JRE.JAVA_13)
+ public void shouldOnlyRunOnJava8UntilJava13() {
+ System.out.println("runs with Java 8, 9, 10, 11, 12 and 13!");
+ }
+
+ @Test
+ @DisabledForJreRange(min = JRE.JAVA_14, max = JRE.JAVA_15)
+ public void shouldNotBeRunOnJava14AndJava15() {
+ System.out.println("Shouldn't be run on Java 14 and 15.");
+ }
+
@Test
@DisabledOnJre(JRE.OTHER)
public void thisTestOnlyRunsWithUpToDateJREs() {
@@ -58,36 +71,38 @@ public class ConditionalAnnotationsUnitTest {
System.out.println("will not run if environment variable LC_TIME is UTF-8");
}
+ // Commented codes are going to work prior JUnit 5.5
+
@Test
- @EnabledIf("'FR' == systemProperty.get('user.country')")
+ // @EnabledIf("'FR' == systemProperty.get('user.country')")
public void onlyFrenchPeopleWillRunThisMethod() {
System.out.println("will run only if user.country is FR");
}
@Test
- @DisabledIf("java.lang.System.getProperty('os.name').toLowerCase().contains('mac')")
+ // @DisabledIf("java.lang.System.getProperty('os.name').toLowerCase().contains('mac')")
public void shouldNotRunOnMacOS() {
System.out.println("will not run if our os.name is mac");
}
@Test
- @EnabledIf(value = {
- "load('nashorn:mozilla_compat.js')",
- "importPackage(java.time)",
- "",
- "var thisMonth = LocalDate.now().getMonth().name()",
- "var february = Month.FEBRUARY.name()",
- "thisMonth.equals(february)"
+ /*@EnabledIf(value = {
+ "load('nashorn:mozilla_compat.js')",
+ "importPackage(java.time)",
+ "",
+ "var thisMonth = LocalDate.now().getMonth().name()",
+ "var february = Month.FEBRUARY.name()",
+ "thisMonth.equals(february)"
},
- engine = "nashorn",
- reason = "Self-fulfilling: {result}")
+ engine = "nashorn",
+ reason = "Self-fulfilling: {result}")*/
public void onlyRunsInFebruary() {
System.out.println("this test only runs in February");
}
@Test
- @DisabledIf("systemEnvironment.get('XPC_SERVICE_NAME') != null " +
- "&& systemEnvironment.get('XPC_SERVICE_NAME').contains('intellij')")
+ /*@DisabledIf("systemEnvironment.get('XPC_SERVICE_NAME') != null " +
+ "&& systemEnvironment.get('XPC_SERVICE_NAME').contains('intellij')")*/
public void notValidForIntelliJ() {
System.out.println("this test will run if our ide is INTELLIJ");
}
@@ -107,7 +122,7 @@ public class ConditionalAnnotationsUnitTest {
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
- @DisabledIf("Math.random() >= 0.5")
+ // @DisabledIf("Math.random() >= 0.5")
@interface CoinToss {
}
diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java
index dd41d98b57..9dd98f184b 100644
--- a/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java
+++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java
@@ -16,48 +16,51 @@ public class MockitoVoidMethodsUnitTest {
@Test
public void whenAddCalledVerified() {
- MyList mockVoid = mock(MyList.class);
- mockVoid.add(0, "");
- verify(mockVoid, times(1)).add(0, "");
+ MyList myList = mock(MyList.class);
+ myList.add(0, "");
+
+ verify(myList, times(1)).add(0, "");
}
@Test(expected = Exception.class)
public void givenNull_addThrows() {
- MyList mockVoid = mock(MyList.class);
- doThrow().when(mockVoid).add(isA(Integer.class), isNull());
- mockVoid.add(0, null);
+ MyList myList = mock(MyList.class);
+ doThrow().when(myList).add(isA(Integer.class), isNull());
+
+ myList.add(0, null);
}
@Test
public void whenAddCalledValueCaptured() {
- MyList mockVoid = mock(MyList.class);
+ MyList myList = mock(MyList.class);
ArgumentCaptor valueCapture = ArgumentCaptor.forClass(String.class);
- doNothing().when(mockVoid).add(any(Integer.class), valueCapture.capture());
- mockVoid.add(0, "captured");
+ doNothing().when(myList).add(any(Integer.class), valueCapture.capture());
+ myList.add(0, "captured");
+
assertEquals("captured", valueCapture.getValue());
}
@Test
public void whenAddCalledAnswered() {
- MyList mockVoid = mock(MyList.class);
- doAnswer((Answer) invocation -> {
+ MyList myList = mock(MyList.class);
+ doAnswer(invocation -> {
Object arg0 = invocation.getArgument(0);
Object arg1 = invocation.getArgument(1);
//do something with the arguments here
assertEquals(3, arg0);
assertEquals("answer me", arg1);
-
return null;
- }).when(mockVoid).add(any(Integer.class), any(String.class));
- mockVoid.add(3, "answer me");
+ }).when(myList).add(any(Integer.class), any(String.class));
+ myList.add(3, "answer me");
}
@Test
public void whenAddCalledRealMethodCalled() {
- MyList mockVoid = mock(MyList.class);
- doCallRealMethod().when(mockVoid).add(any(Integer.class), any(String.class));
- mockVoid.add(1, "real");
- verify(mockVoid, times(1)).add(1, "real");
+ MyList myList = mock(MyList.class);
+ doCallRealMethod().when(myList).add(any(Integer.class), any(String.class));
+ myList.add(1, "real");
+
+ verify(myList, times(1)).add(1, "real");
}
}