diff --git a/core-java-modules/core-java-collections-2/README.md b/core-java-modules/core-java-collections-2/README.md
new file mode 100644
index 0000000000..13ca191edb
--- /dev/null
+++ b/core-java-modules/core-java-collections-2/README.md
@@ -0,0 +1,15 @@
+=========
+
+## Core Java Collections Cookbooks and Examples
+
+### Relevant Articles:
+- [Removing Elements from Java Collections](https://www.baeldung.com/java-collection-remove-elements)
+- [How to Filter a Collection in Java](https://www.baeldung.com/java-collection-filtering)
+- [Join and Split Arrays and Collections in Java](https://www.baeldung.com/java-join-and-split)
+- [Java – Combine Multiple Collections](https://www.baeldung.com/java-combine-multiple-collections)
+- [Combining Different Types of Collections in Java](https://www.baeldung.com/java-combine-collections)
+- [Shuffling Collections In Java](https://www.baeldung.com/java-shuffle-collection)
+- [Sorting in Java](https://www.baeldung.com/java-sorting)
+- [Getting the Size of an Iterable in Java](https://www.baeldung.com/java-iterable-size)
+- [Java Null-Safe Streams from Collections](https://www.baeldung.com/java-null-safe-streams-from-collections)
+
diff --git a/core-java-modules/core-java-collections-2/pom.xml b/core-java-modules/core-java-collections-2/pom.xml
new file mode 100644
index 0000000000..0ac53ec180
--- /dev/null
+++ b/core-java-modules/core-java-collections-2/pom.xml
@@ -0,0 +1,58 @@
+
+ 4.0.0
+ core-java-collections-2
+ 0.0.1-SNAPSHOT
+ core-java-collections-2
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../../parent-java
+
+
+
+
+ org.eclipse.collections
+ eclipse-collections
+ ${eclipse.collections.version}
+
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections4.version}
+
+
+ org.apache.commons
+ commons-exec
+ ${commons-exec.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+ org.junit.platform
+ junit-platform-runner
+ ${junit.platform.version}
+ test
+
+
+
+
+ 7.1.0
+ 4.1
+ 3.11.1
+ 1.2.0
+ 1.3
+
+
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningArrays.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningArrays.java
index 2ad48033c0..5f63123f6a 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningArrays.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningArrays.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import java.util.Arrays;
import java.util.stream.Stream;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningLists.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningLists.java
index 3fdf672758..a45e9cdfe8 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningLists.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningLists.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningMaps.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningMaps.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningMaps.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningMaps.java
index d8bbd01ed3..d4d21d0dad 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningMaps.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningMaps.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import java.util.Collection;
import java.util.HashMap;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningSets.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningSets.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningSets.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningSets.java
index 5f531c1d43..27a5681eee 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/combiningcollections/CombiningSets.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/combiningcollections/CombiningSets.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import java.util.Collection;
import java.util.HashSet;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/CollectionUtilsCollectionFilter.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/CollectionUtilsCollectionFilter.java
similarity index 91%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/CollectionUtilsCollectionFilter.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/CollectionUtilsCollectionFilter.java
index 58f9f6af54..de5158e147 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/CollectionUtilsCollectionFilter.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/CollectionUtilsCollectionFilter.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.filtering;
+package com.baeldung.collections.filtering;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/EclipseCollectionsCollectionFilter.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/EclipseCollectionsCollectionFilter.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/EclipseCollectionsCollectionFilter.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/EclipseCollectionsCollectionFilter.java
index 981d6ca241..a7b78b1f9b 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/EclipseCollectionsCollectionFilter.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/EclipseCollectionsCollectionFilter.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.filtering;
+package com.baeldung.collections.filtering;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/GuavaCollectionFilter.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/GuavaCollectionFilter.java
similarity index 91%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/GuavaCollectionFilter.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/GuavaCollectionFilter.java
index 88338fd6d4..0a2a782c33 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/GuavaCollectionFilter.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/GuavaCollectionFilter.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.filtering;
+package com.baeldung.collections.filtering;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/StreamsCollectionFilter.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/StreamsCollectionFilter.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/StreamsCollectionFilter.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/StreamsCollectionFilter.java
index f074f74199..a9fb8481e5 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/filtering/StreamsCollectionFilter.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/filtering/StreamsCollectionFilter.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.filtering;
+package com.baeldung.collections.filtering;
import java.util.Collection;
import java.util.function.Predicate;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/iterable/IterableSize.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterablesize/IterableSize.java
similarity index 97%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/iterable/IterableSize.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterablesize/IterableSize.java
index 03864f16f2..b96e2bb571 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/iterable/IterableSize.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/iterablesize/IterableSize.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.iterable;
+package com.baeldung.collections.iterablesize;
import java.util.Collection;
import java.util.stream.StreamSupport;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java
similarity index 92%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java
index 2405c26aac..ce5cbb39d6 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNull.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Collection;
import java.util.stream.Stream;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java
similarity index 92%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java
index da767d4563..68d51c2d87 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainer.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Collection;
import java.util.Optional;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java
similarity index 91%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java
index 0c10f1cebc..6c606ebedd 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheck.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Collection;
import java.util.stream.Stream;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/CollectionRemoveIf.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/CollectionRemoveIf.java
similarity index 91%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/CollectionRemoveIf.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/CollectionRemoveIf.java
index 2f5e91596f..4089382376 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/CollectionRemoveIf.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/CollectionRemoveIf.java
@@ -1,4 +1,4 @@
-package com.baeldung.removal;
+package com.baeldung.collections.removal;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/Iterators.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/Iterators.java
similarity index 93%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/Iterators.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/Iterators.java
index 86b91b3fdc..d551b04eae 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/Iterators.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/Iterators.java
@@ -1,4 +1,4 @@
-package com.baeldung.removal;
+package com.baeldung.collections.removal;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamFilterAndCollector.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamFilterAndCollector.java
similarity index 93%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamFilterAndCollector.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamFilterAndCollector.java
index bf6db68bae..e0dc75f428 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamFilterAndCollector.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamFilterAndCollector.java
@@ -1,4 +1,4 @@
-package com.baeldung.removal;
+package com.baeldung.collections.removal;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamPartitioningBy.java b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamPartitioningBy.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamPartitioningBy.java
rename to core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamPartitioningBy.java
index c77e996616..c01c334f01 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/removal/StreamPartitioningBy.java
+++ b/core-java-modules/core-java-collections-2/src/main/java/com/baeldung/collections/removal/StreamPartitioningBy.java
@@ -1,4 +1,4 @@
-package com.baeldung.removal;
+package com.baeldung.collections.removal;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningArraysUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningArraysUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningArraysUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningArraysUnitTest.java
index 3b80d773ad..312f5582ba 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningArraysUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningArraysUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import static org.junit.Assert.*;
import org.junit.Test;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningListsUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningListsUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningListsUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningListsUnitTest.java
index c5851d7daf..5443e56e5f 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningListsUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningListsUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningMapsUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningMapsUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningMapsUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningMapsUnitTest.java
index 3fa9cc7dc4..644f178f80 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningMapsUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningMapsUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningSetsUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningSetsUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningSetsUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningSetsUnitTest.java
index 330827bdc2..c9976eb6de 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/combiningcollections/CombiningSetsUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/combiningcollections/CombiningSetsUnitTest.java
@@ -1,5 +1,5 @@
-package com.baeldung.combiningcollections;
+package com.baeldung.collections.combiningcollections;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/filtering/CollectionFiltersUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/filtering/CollectionFiltersUnitTest.java
similarity index 98%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/java/filtering/CollectionFiltersUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/filtering/CollectionFiltersUnitTest.java
index b30805d471..db387818b8 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/filtering/CollectionFiltersUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/filtering/CollectionFiltersUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.filtering;
+package com.baeldung.collections.filtering;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/iterable/IterableSizeUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterablesize/IterableSizeUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/java/iterable/IterableSizeUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterablesize/IterableSizeUnitTest.java
index 4bc413dee0..35702a74b3 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/iterable/IterableSizeUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/iterablesize/IterableSizeUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.iterable;
+package com.baeldung.collections.iterablesize;
import static org.junit.Assert.assertEquals;
diff --git a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsJoinAndSplitJUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/CollectionsJoinAndSplitJUnitTest.java
similarity index 97%
rename from core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsJoinAndSplitJUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/CollectionsJoinAndSplitJUnitTest.java
index c288cf499d..1904fd1587 100644
--- a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsJoinAndSplitJUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/CollectionsJoinAndSplitJUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.collections;
+package com.baeldung.collections.joinsplit;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/JoinSplitCollectionsUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/JoinSplitCollectionsUnitTest.java
similarity index 99%
rename from core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/JoinSplitCollectionsUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/JoinSplitCollectionsUnitTest.java
index c594529f41..1fbe210ad4 100644
--- a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/JoinSplitCollectionsUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/joinsplit/JoinSplitCollectionsUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.collections;
+package com.baeldung.collections.joinsplit;
import org.junit.Test;
diff --git a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsConcatenateUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/multiplecollections/CombineMultipleCollectionsUnitTest.java
similarity index 98%
rename from core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsConcatenateUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/multiplecollections/CombineMultipleCollectionsUnitTest.java
index d43075c925..ebef8d6875 100644
--- a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/collections/CollectionsConcatenateUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/multiplecollections/CombineMultipleCollectionsUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.collections;
+package com.baeldung.collections.multiplecollections;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
@@ -14,7 +14,7 @@ import java.util.stream.Stream;
import static java.util.Arrays.asList;
-public class CollectionsConcatenateUnitTest {
+public class CombineMultipleCollectionsUnitTest {
@Test
public void givenUsingJava8_whenConcatenatingUsingConcat_thenCorrect() {
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java
index 875045946d..42cda7926c 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingCommonsEmptyIfNullUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Arrays;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java
index 402f1a6a19..666d5e7d04 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingJava8OptionalContainerUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Arrays;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java
similarity index 95%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java
index bb6152371d..2e8eeb35ad 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/nullsafecollectionstreams/NullSafeCollectionStreamsUsingNullDereferenceCheckUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.nullsafecollectionstreams;
+package com.baeldung.collections.nullsafecollectionstreams;
import java.util.Arrays;
import java.util.Collection;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/removal/RemovalUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/removal/RemovalUnitTest.java
similarity index 98%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/removal/RemovalUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/removal/RemovalUnitTest.java
index 1b379f32de..998dbe6cca 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/removal/RemovalUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/removal/RemovalUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.removal;
+package com.baeldung.collections.removal;
import org.junit.Before;
import org.junit.Test;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/shufflingcollections/ShufflingCollectionsUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/shufflingcollections/ShufflingCollectionsUnitTest.java
similarity index 97%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/shufflingcollections/ShufflingCollectionsUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/shufflingcollections/ShufflingCollectionsUnitTest.java
index d013907c9a..041e67ba7f 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/shufflingcollections/ShufflingCollectionsUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/shufflingcollections/ShufflingCollectionsUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.shufflingcollections;
+package com.baeldung.collections.shufflingcollections;
import org.junit.Test;
diff --git a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/Employee.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/Employee.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/Employee.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/Employee.java
index 99af49c8d3..e838dbea18 100644
--- a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/Employee.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/Employee.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.sorting;
+package com.baeldung.collections.sorting;
public class Employee implements Comparable {
diff --git a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/JavaSortingUnitTest.java b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java
similarity index 99%
rename from core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/JavaSortingUnitTest.java
rename to core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java
index ca9c9b4b5d..2505adcea7 100644
--- a/core-java-modules/core-java-collections/src/test/java/org/baeldung/java/sorting/JavaSortingUnitTest.java
+++ b/core-java-modules/core-java-collections-2/src/test/java/com/baeldung/collections/sorting/JavaSortingUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.sorting;
+package com.baeldung.collections.sorting;
import com.google.common.primitives.Ints;
import org.apache.commons.lang3.ArrayUtils;
diff --git a/core-java-modules/core-java-collections-3/README.md b/core-java-modules/core-java-collections-3/README.md
new file mode 100644
index 0000000000..9218384640
--- /dev/null
+++ b/core-java-modules/core-java-collections-3/README.md
@@ -0,0 +1,11 @@
+=========
+
+## Core Java Collections Cookbooks and Examples
+
+### Relevant Articles:
+- [Time Comparison of Arrays.sort(Object[]) and Arrays.sort(int[])](https://www.baeldung.com/arrays-sortobject-vs-sortint)
+- [Java ArrayList vs Vector](https://www.baeldung.com/java-arraylist-vs-vector)
+- [Differences Between HashMap and Hashtable](https://www.baeldung.com/hashmap-hashtable-differences)
+- [Differences Between Collection.clear() and Collection.removeAll()](https://www.baeldung.com/java-collection-clear-vs-removeall)
+- [Performance of contains() in a HashSet vs ArrayList](https://www.baeldung.com/java-hashset-arraylist-contains-performance)
+- [Fail-Safe Iterator vs Fail-Fast Iterator](https://www.baeldung.com/java-fail-safe-vs-fail-fast-iterator)
diff --git a/core-java-modules/core-java-collections-3/pom.xml b/core-java-modules/core-java-collections-3/pom.xml
new file mode 100644
index 0000000000..84c7865e68
--- /dev/null
+++ b/core-java-modules/core-java-collections-3/pom.xml
@@ -0,0 +1,34 @@
+
+ 4.0.0
+ core-java-collections-3
+ 0.1.0-SNAPSHOT
+ core-java-collections-3
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../../parent-java
+
+
+
+
+ org.openjdk.jmh
+ jmh-core
+ ${openjdk.jmh.version}
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+
+
+ 1.19
+ 3.11.1
+
+
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArrayListBenchmark.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/ArrayListBenchmark.java
similarity index 98%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArrayListBenchmark.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/ArrayListBenchmark.java
index 331ae8d908..7fcadf019c 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArrayListBenchmark.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/ArrayListBenchmark.java
@@ -1,4 +1,4 @@
-package com.baeldung.performance;
+package com.baeldung.collections.arraylistvsvector;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
diff --git a/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/Employee.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/Employee.java
new file mode 100644
index 0000000000..02f25a7558
--- /dev/null
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/Employee.java
@@ -0,0 +1,55 @@
+package com.baeldung.collections.arraylistvsvector;
+
+public class Employee {
+
+ private Long id;
+ private String name;
+
+ public Employee(Long id, String name) {
+ this.name = name;
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Employee employee = (Employee) o;
+
+ if (!id.equals(employee.id)) return false;
+ return name.equals(employee.name);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = id.hashCode();
+ result = 31 * result + name.hashCode();
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "Employee{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/list/VectorExample.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/VectorExample.java
similarity index 92%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/list/VectorExample.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/VectorExample.java
index 7debc07911..e82e47cdbb 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/list/VectorExample.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/arraylistvsvector/VectorExample.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.list;
+package com.baeldung.collections.arraylistvsvector;
import java.util.Enumeration;
import java.util.Iterator;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/CollectionsBenchmark.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/CollectionsBenchmark.java
similarity index 96%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/CollectionsBenchmark.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/CollectionsBenchmark.java
index 921e1608ea..76edd10e92 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/CollectionsBenchmark.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/CollectionsBenchmark.java
@@ -1,4 +1,4 @@
-package com.baeldung.performance;
+package com.baeldung.collections.containsperformance;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
diff --git a/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/Employee.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/Employee.java
new file mode 100644
index 0000000000..6c60f8772c
--- /dev/null
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/containsperformance/Employee.java
@@ -0,0 +1,55 @@
+package com.baeldung.collections.containsperformance;
+
+public class Employee {
+
+ private Long id;
+ private String name;
+
+ public Employee(Long id, String name) {
+ this.name = name;
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Employee employee = (Employee) o;
+
+ if (!id.equals(employee.id)) return false;
+ return name.equals(employee.name);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = id.hashCode();
+ result = 31 * result + name.hashCode();
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "Employee{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/iterators/Iterators.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/iterators/Iterators.java
similarity index 97%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/iterators/Iterators.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/iterators/Iterators.java
index 5e7cfdb54f..23e6bbda77 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/iterators/Iterators.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/iterators/Iterators.java
@@ -1,4 +1,4 @@
-package com.baeldung.iterators;
+package com.baeldung.collections.iterators;
import java.util.ArrayList;
import java.util.Iterator;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArraySortBenchmark.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/ArraySortBenchmark.java
similarity index 97%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArraySortBenchmark.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/ArraySortBenchmark.java
index b93f8e9cc2..1cd56aa29d 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/performance/ArraySortBenchmark.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/ArraySortBenchmark.java
@@ -1,4 +1,4 @@
-package com.baeldung.performance;
+package com.baeldung.collections.sortingcomparison;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/sort/CollectionsSortCompare.java b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/CollectionsSortCompare.java
similarity index 94%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/java/sort/CollectionsSortCompare.java
rename to core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/CollectionsSortCompare.java
index 1eff522877..abe7a12a00 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/java/sort/CollectionsSortCompare.java
+++ b/core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/sortingcomparison/CollectionsSortCompare.java
@@ -1,4 +1,4 @@
-package com.baeldung.java.sort;
+package com.baeldung.collections.sortingcomparison;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/core-java-modules/core-java-collections-list/src/test/java/com/baeldung/collection/ClearVsRemoveAllUnitTest.java b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/clearvsremoveall/ClearVsRemoveAllUnitTest.java
similarity index 95%
rename from core-java-modules/core-java-collections-list/src/test/java/com/baeldung/collection/ClearVsRemoveAllUnitTest.java
rename to core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/clearvsremoveall/ClearVsRemoveAllUnitTest.java
index 8b0a7ef0db..9cd9c6aa50 100644
--- a/core-java-modules/core-java-collections-list/src/test/java/com/baeldung/collection/ClearVsRemoveAllUnitTest.java
+++ b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/clearvsremoveall/ClearVsRemoveAllUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.collection;
+package com.baeldung.collections.clearvsremoveall;
import org.junit.jupiter.api.Test;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java
similarity index 98%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java
rename to core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java
index 5218332d60..b00a7fd953 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java
+++ b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/hashmapvshashtable/HashmapVsHashtableDifferenceUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.hashmapvshashtable;
+package com.baeldung.collections.hashmapvshashtable;
import static org.junit.Assert.assertEquals;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/iterators/IteratorsUnitTest.java b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/iterators/IteratorsUnitTest.java
similarity index 77%
rename from core-java-modules/core-java-collections/src/test/java/com/baeldung/iterators/IteratorsUnitTest.java
rename to core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/iterators/IteratorsUnitTest.java
index 36e1f4a83c..95cf590857 100644
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/iterators/IteratorsUnitTest.java
+++ b/core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/iterators/IteratorsUnitTest.java
@@ -1,8 +1,8 @@
-package com.baeldung.iterators;
+package com.baeldung.collections.iterators;
-import static com.baeldung.iterators.Iterators.failFast1;
-import static com.baeldung.iterators.Iterators.failFast2;
-import static com.baeldung.iterators.Iterators.failSafe1;
+import static com.baeldung.collections.iterators.Iterators.failFast1;
+import static com.baeldung.collections.iterators.Iterators.failFast2;
+import static com.baeldung.collections.iterators.Iterators.failSafe1;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/core-java-modules/core-java-collections-list/README.md b/core-java-modules/core-java-collections-list/README.md
index e83fcce5ff..1542a352fe 100644
--- a/core-java-modules/core-java-collections-list/README.md
+++ b/core-java-modules/core-java-collections-list/README.md
@@ -11,4 +11,5 @@
- [Remove the First Element from a List](http://www.baeldung.com/java-remove-first-element-from-list)
- [How to Find an Element in a List with Java](http://www.baeldung.com/find-list-element-java)
- [Finding Max/Min of a List or Collection](http://www.baeldung.com/java-collection-min-max)
-- [Remove All Occurrences of a Specific Value from a List](https://www.baeldung.com/java-remove-value-from-list)
\ No newline at end of file
+- [Remove All Occurrences of a Specific Value from a List](https://www.baeldung.com/java-remove-value-from-list)
+- [Removing the First Element of an Array](https://www.baeldung.com/java-array-remove-first-element)
diff --git a/core-java-modules/core-java-collections/README.md b/core-java-modules/core-java-collections/README.md
index b34293769d..7be7d02b3f 100644
--- a/core-java-modules/core-java-collections/README.md
+++ b/core-java-modules/core-java-collections/README.md
@@ -3,29 +3,13 @@
## Core Java Collections Cookbooks and Examples
### Relevant Articles:
-- [Java – Combine Multiple Collections](http://www.baeldung.com/java-combine-multiple-collections)
-- [Collect a Java Stream to an Immutable Collection](http://www.baeldung.com/java-stream-immutable-collection)
-- [Introduction to the Java ArrayDeque](http://www.baeldung.com/java-array-deque)
-- [Getting the Size of an Iterable in Java](http://www.baeldung.com/java-iterable-size)
-- [How to Filter a Collection in Java](http://www.baeldung.com/java-collection-filtering)
-- [Removing the First Element of an Array](https://www.baeldung.com/java-array-remove-first-element)
-- [Fail-Safe Iterator vs Fail-Fast Iterator](http://www.baeldung.com/java-fail-safe-vs-fail-fast-iterator)
-- [Shuffling Collections In Java](http://www.baeldung.com/java-shuffle-collection)
-- [An Introduction to Java.util.Hashtable Class](http://www.baeldung.com/java-hash-table)
-- [Java Null-Safe Streams from Collections](https://www.baeldung.com/java-null-safe-streams-from-collections)
+- [Collect a Java Stream to an Immutable Collection](https://www.baeldung.com/java-stream-immutable-collection)
+- [Introduction to the Java ArrayDeque](https://www.baeldung.com/java-array-deque)
+- [An Introduction to Java.util.Hashtable Class](https://www.baeldung.com/java-hash-table)
- [Thread Safe LIFO Data Structure Implementations](https://www.baeldung.com/java-lifo-thread-safe)
-- [Differences Between Collection.clear() and Collection.removeAll()](https://www.baeldung.com/java-collection-clear-vs-removeall)
-- [Performance of contains() in a HashSet vs ArrayList](https://www.baeldung.com/java-hashset-arraylist-contains-performance)
- [Time Complexity of Java Collections](https://www.baeldung.com/java-collections-complexity)
-- [Operating on and Removing an Item from Stream](https://www.baeldung.com/java-use-remove-item-stream)
-- [An Introduction to Synchronized Java Collections](https://www.baeldung.com/java-synchronized-collections)
-- [Removing Elements from Java Collections](https://www.baeldung.com/java-collection-remove-elements)
-- [Combining Different Types of Collections in Java](https://www.baeldung.com/java-combine-collections)
-- [Sorting in Java](http://www.baeldung.com/java-sorting)
-- [Join and Split Arrays and Collections in Java](http://www.baeldung.com/java-join-and-split)
- [A Guide to EnumMap](https://www.baeldung.com/java-enum-map)
-- [A Guide to Iterator in Java](http://www.baeldung.com/java-iterator)
-- [Differences Between HashMap and Hashtable](https://www.baeldung.com/hashmap-hashtable-differences)
-- [Java ArrayList vs Vector](https://www.baeldung.com/java-arraylist-vs-vector)
+- [A Guide to Iterator in Java](https://www.baeldung.com/java-iterator)
- [Defining a Char Stack in Java](https://www.baeldung.com/java-char-stack)
-- [Time Comparison of Arrays.sort(Object[]) and Arrays.sort(int[])](https://www.baeldung.com/arrays-sortobject-vs-sortint)
+- [Guide to the Java Queue Interface](https://www.baeldung.com/java-queue)
+- [An Introduction to Synchronized Java Collections](https://www.baeldung.com/java-synchronized-collections)
diff --git a/core-java-modules/core-java-collections/pom.xml b/core-java-modules/core-java-collections/pom.xml
index e5b89c3d16..7fd702845b 100644
--- a/core-java-modules/core-java-collections/pom.xml
+++ b/core-java-modules/core-java-collections/pom.xml
@@ -14,33 +14,12 @@
-
- org.apache.commons
- commons-collections4
- ${commons-collections4.version}
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
-
- org.eclipse.collections
- eclipse-collections
- ${eclipse.collections.version}
- org.assertjassertj-core${assertj.version}test
-
- org.junit.platform
- junit-platform-runner
- ${junit.platform.version}
- test
- org.openjdk.jmhjmh-core
@@ -51,11 +30,6 @@
jmh-generator-annprocess${openjdk.jmh.version}
-
- org.apache.commons
- commons-exec
- ${commons-exec.version}
- org.projectlomboklombok
@@ -66,13 +40,6 @@
1.19
- 1.2.0
- 3.8.1
- 4.1
- 4.01
- 1.7.03.11.1
- 7.1.0
- 1.3
diff --git a/core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/application/Application.java b/core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/Application.java
similarity index 90%
rename from core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/application/Application.java
rename to core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/Application.java
index 093308a34a..f974a24839 100644
--- a/core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/application/Application.java
+++ b/core-java-modules/core-java-collections/src/main/java/com/baeldung/synchronizedcollections/Application.java
@@ -1,4 +1,4 @@
-package com.baeldung.synchronizedcollections.application;
+package com.baeldung.synchronizedcollections;
import java.util.Arrays;
import java.util.Collections;
diff --git a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/collections/ConcurrentModificationExceptionUnitTest.java b/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/collections/ConcurrentModificationExceptionUnitTest.java
deleted file mode 100644
index d0d8c3923c..0000000000
--- a/core-java-modules/core-java-collections/src/test/java/com/baeldung/java/collections/ConcurrentModificationExceptionUnitTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.baeldung.java.collections;
-
-import org.junit.Test;
-
-import java.util.*;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import static java.util.Arrays.asList;
-import static org.junit.Assert.assertEquals;
-
-public class ConcurrentModificationExceptionUnitTest {
-
- @Test
- public void changingContentWithSetDoesNotThrowConcurrentModificationException() throws Exception {
- ArrayList
-
- commons-io
- commons-io
- ${commons-io.version}
- commons-chaincommons-chain${commons-chain.version}
-
- org.apache.commons
- commons-csv
- ${commons-csv.version}
- commons-dbutilscommons-dbutils
@@ -72,18 +62,6 @@
xchart${xchart-version}
-
- org.apache.commons
- commons-collections4
- ${commons.collections.version}
-
-
- org.hamcrest
- java-hamcrest
- ${org.hamcrest.java-hamcrest.version}
- test
-
-
@@ -91,11 +69,8 @@
1.11.9.31.2
- 1.43.6.21.6
- 4.1
- 2.0.0.01.10.L0013.5.23.6
diff --git a/libraries-testing/pom.xml b/libraries-testing/pom.xml
index 7cc5a8f775..a2fbed31b2 100644
--- a/libraries-testing/pom.xml
+++ b/libraries-testing/pom.xml
@@ -43,6 +43,12 @@
serenity-rest-assured${serenity.version}test
+
+
+ io.rest-assured
+ rest-assured
+
+ net.serenity-bdd
@@ -162,15 +168,15 @@
- 1.9.26
- 1.41.0
+ 1.9.9
+ 1.9.01.9.01.9.271.5.03.0.00.8.14.3.8.RELEASE
- 3.0.3
+ 4.1.13.6.22.0.0.0
diff --git a/libraries-testing/src/test/java/com/baeldung/hamcrest/Animal.java b/libraries-testing/src/test/java/com/baeldung/hamcrest/Animal.java
index 1a0266f5a3..1d37eef59b 100644
--- a/libraries-testing/src/test/java/com/baeldung/hamcrest/Animal.java
+++ b/libraries-testing/src/test/java/com/baeldung/hamcrest/Animal.java
@@ -1,4 +1,4 @@
-package org.baeldung.hamcrest;
+package com.baeldung.hamcrest;
public class Animal {
String name;
diff --git a/libraries-testing/src/test/java/com/baeldung/hamcrest/Cat.java b/libraries-testing/src/test/java/com/baeldung/hamcrest/Cat.java
index 892e5b6e30..b15a3628da 100644
--- a/libraries-testing/src/test/java/com/baeldung/hamcrest/Cat.java
+++ b/libraries-testing/src/test/java/com/baeldung/hamcrest/Cat.java
@@ -1,4 +1,4 @@
-package org.baeldung.hamcrest;
+package com.baeldung.hamcrest;
public class Cat extends Animal {
diff --git a/libraries-testing/src/test/java/com/baeldung/hamcrest/HamcrestMatcherUnitTest.java b/libraries-testing/src/test/java/com/baeldung/hamcrest/HamcrestMatcherUnitTest.java
index cf9fde7114..f5887ba79b 100644
--- a/libraries-testing/src/test/java/com/baeldung/hamcrest/HamcrestMatcherUnitTest.java
+++ b/libraries-testing/src/test/java/com/baeldung/hamcrest/HamcrestMatcherUnitTest.java
@@ -1,10 +1,10 @@
-package org.baeldung.hamcrest;
+package com.baeldung.hamcrest;
import org.junit.Test;
import java.util.*;
-import static org.baeldung.hamcrest.IsPositiveInteger.isAPositiveInteger;
+import static com.baeldung.hamcrest.IsPositiveInteger.isAPositiveInteger;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.hamcrest.beans.HasProperty.hasProperty;
diff --git a/libraries-testing/src/test/java/com/baeldung/hamcrest/IsPositiveInteger.java b/libraries-testing/src/test/java/com/baeldung/hamcrest/IsPositiveInteger.java
index 0d8d262538..4d2ef8a8e5 100644
--- a/libraries-testing/src/test/java/com/baeldung/hamcrest/IsPositiveInteger.java
+++ b/libraries-testing/src/test/java/com/baeldung/hamcrest/IsPositiveInteger.java
@@ -1,4 +1,4 @@
-package org.baeldung.hamcrest;
+package com.baeldung.hamcrest;
import org.hamcrest.Description;
import org.hamcrest.Factory;
diff --git a/libraries-testing/src/test/java/com/baeldung/hamcrest/Person.java b/libraries-testing/src/test/java/com/baeldung/hamcrest/Person.java
index 0053c98043..417daa866e 100644
--- a/libraries-testing/src/test/java/com/baeldung/hamcrest/Person.java
+++ b/libraries-testing/src/test/java/com/baeldung/hamcrest/Person.java
@@ -1,4 +1,4 @@
-package org.baeldung.hamcrest;
+package com.baeldung.hamcrest;
public class Person {
String name;
diff --git a/parent-boot-1/README.md b/parent-boot-1/README.md
index 8b312c348a..5ad14c6519 100644
--- a/parent-boot-1/README.md
+++ b/parent-boot-1/README.md
@@ -1,2 +1,3 @@
+## Parent Boot 1
This is a parent module for all projects using Spring Boot 1.
diff --git a/parent-boot-2/README.md b/parent-boot-2/README.md
index 3f18bdf38e..7afe447a66 100644
--- a/parent-boot-2/README.md
+++ b/parent-boot-2/README.md
@@ -1,2 +1,3 @@
+## Parent Boot 2
This is a parent module for all projects using Spring Boot 2.
diff --git a/parent-java/README.md b/parent-java/README.md
index 729105e3fd..1b14b7cfc1 100644
--- a/parent-java/README.md
+++ b/parent-java/README.md
@@ -1 +1,3 @@
-## Relevant Articles:
+## Parent Java
+
+This is a parent module for all projects using Java
\ No newline at end of file
diff --git a/parent-kotlin/README.md b/parent-kotlin/README.md
index 6c17a6ac29..c78ecbac42 100644
--- a/parent-kotlin/README.md
+++ b/parent-kotlin/README.md
@@ -1,2 +1,3 @@
+## Parent Kotlin
-Parent module for Kotlin projects.
+This is a parent module for all projects using Kotlin
diff --git a/parent-spring-4/README.md b/parent-spring-4/README.md
index 729105e3fd..f14d003dd5 100644
--- a/parent-spring-4/README.md
+++ b/parent-spring-4/README.md
@@ -1 +1,3 @@
-## Relevant Articles:
+## Parent Spring 4
+
+This is a parent module for all projects using Spring 4
diff --git a/parent-spring-5/README.md b/parent-spring-5/README.md
index 729105e3fd..791a6ca197 100644
--- a/parent-spring-5/README.md
+++ b/parent-spring-5/README.md
@@ -1 +1,3 @@
-## Relevant Articles:
+## Parent Spring 5
+
+This is a parent module for all projects using Spring 5
diff --git a/pom.xml b/pom.xml
index 6972736288..79e5194ee8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -401,6 +401,8 @@
core-java-modules/core-java-arrayscore-java-modules/core-java-arrays-2core-java-modules/core-java-collections
+ core-java-modules/core-java-collections-2
+ core-java-modules/core-java-collections-3core-java-modules/core-java-collections-listcore-java-modules/core-java-collections-list-2core-java-modules/core-java-collections-list-3
@@ -528,6 +530,8 @@
libraries-datalibraries-data-2libraries-apache-commons
+ libraries-apache-commons-collections
+ libraries-apache-commons-iolibraries-primitivelibraries-testinglibraries-security
@@ -667,7 +671,6 @@
spring-bootspring-boot-adminspring-boot-angular
- spring-boot-angular-ecommercespring-boot-autoconfigurationspring-boot-bootstrapspring-boot-camel
@@ -1141,6 +1144,8 @@
core-java-modules/core-java-arrayscore-java-modules/core-java-arrays-2core-java-modules/core-java-collections
+ core-java-modules/core-java-collections-2
+ core-java-modules/core-java-collections-3core-java-modules/core-java-collections-listcore-java-modules/core-java-collections-list-2core-java-modules/core-java-collections-list-3
@@ -1262,6 +1267,8 @@
libraries-datalibraries-data-2libraries-apache-commons
+ libraries-apache-commons-collections
+ libraries-apache-commons-iolibraries-testinglibraries-securitylibraries-server
@@ -1381,7 +1388,6 @@
spring-bootspring-boot-adminspring-boot-angular
- spring-boot-angular-ecommercespring-boot-autoconfigurationspring-boot-bootstrapspring-boot-camel
diff --git a/saas/README.md b/saas/README.md
index 4e0eeea974..f537c7ff95 100644
--- a/saas/README.md
+++ b/saas/README.md
@@ -1,3 +1,7 @@
+## SAAS
+
+This module contains articles about software as a service (SAAS)
+
## Relevant articles:
- [JIRA REST API Integration](http://www.baeldung.com/jira-rest-api)
diff --git a/spark-java/README.md b/spark-java/README.md
index 5abe78263c..3f16b29b9f 100644
--- a/spark-java/README.md
+++ b/spark-java/README.md
@@ -1,6 +1,6 @@
-=========
+## Spark Java
-## Spark Java Framework Tutorial Sample Project
+This module contains articles about Spark
### Relevant Articles
- [Building an API With the Spark Java Framework](http://www.baeldung.com/spark-framework-rest-api)
diff --git a/spring-4/README.md b/spring-4/README.md
index 57cb8c3eeb..5bc38d4a9d 100644
--- a/spring-4/README.md
+++ b/spring-4/README.md
@@ -1,3 +1,7 @@
+## Spring 4
+
+This module contains articles about Spring 4
+
### Relevant Articles:
- [A Guide to Flips for Spring](http://www.baeldung.com/flips-spring)
- [Configuring a Hikari Connection Pool with Spring Boot](https://www.baeldung.com/spring-boot-hikari)
diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/errorhandling/ErrorHandlingIntegrationTest.java b/spring-5-reactive/src/test/java/com/baeldung/reactive/errorhandling/ErrorHandlingIntegrationTest.java
index 42da90ecd5..3bbbed0d77 100644
--- a/spring-5-reactive/src/test/java/com/baeldung/reactive/errorhandling/ErrorHandlingIntegrationTest.java
+++ b/spring-5-reactive/src/test/java/com/baeldung/reactive/errorhandling/ErrorHandlingIntegrationTest.java
@@ -12,11 +12,13 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.MediaType;
import org.springframework.security.test.context.support.WithMockUser;
+import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient;
@RunWith(SpringRunner.class)
-@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+@DirtiesContext
@WithMockUser
@AutoConfigureWebTestClient(timeout = "10000")
public class ErrorHandlingIntegrationTest {
diff --git a/spring-5-security-cognito/README.md b/spring-5-security-cognito/README.md
index 0825882c05..ff2784f410 100644
--- a/spring-5-security-cognito/README.md
+++ b/spring-5-security-cognito/README.md
@@ -1,3 +1,7 @@
+## Spring 5 Security Cognito
+
+This module contains articles about Spring 5 with Amazon Cognito
+
## Relevant articles:
- [Authenticating with Amazon Cognito Using Spring Security](https://www.baeldung.com/spring-security-oauth-cognito)
diff --git a/spring-5/README.md b/spring-5/README.md
index d3c1decbc7..7f4c643b7a 100644
--- a/spring-5/README.md
+++ b/spring-5/README.md
@@ -1,4 +1,6 @@
-## Spring REST Example Project
+## Spring 5
+
+This module contains articles about Spring 5
### The Course
The "REST With Spring" Classes: http://bit.ly/restwithspring
diff --git a/spring-activiti/README.md b/spring-activiti/README.md
index 703dfeec52..75f3ea51e5 100644
--- a/spring-activiti/README.md
+++ b/spring-activiti/README.md
@@ -1,3 +1,7 @@
+## Spring Activiti
+
+This module contains articles about Spring with Activiti
+
### Relevant articles
- [A Guide to Activiti with Java](http://www.baeldung.com/java-activiti)
diff --git a/spring-akka/README.md b/spring-akka/README.md
index 0f1c013214..035551d459 100644
--- a/spring-akka/README.md
+++ b/spring-akka/README.md
@@ -1,2 +1,6 @@
+## Spring Akka
+
+This module contains articles about Spring with Akka
+
### Relevant Articles:
- [Introduction to Spring with Akka](http://www.baeldung.com/akka-with-spring)
diff --git a/spring-all/README.md b/spring-all/README.md
index c5825b47fb..8a4e8fa18f 100644
--- a/spring-all/README.md
+++ b/spring-all/README.md
@@ -1,5 +1,3 @@
-=========
-
## Spring General Example Project
This project is used to replicate Spring Exceptions only.
diff --git a/spring-amqp/README.md b/spring-amqp/README.md
index 5e29011995..0ae4eda12e 100644
--- a/spring-amqp/README.md
+++ b/spring-amqp/README.md
@@ -1,3 +1,7 @@
+## Spring AMQP
+
+This module contains articles about Spring with the AMQP messaging system
+
## Relevant articles:
- [Messaging With Spring AMQP](https://www.baeldung.com/spring-amqp)
diff --git a/spring-aop/README.md b/spring-aop/README.md
index af8ab71da0..915299a073 100644
--- a/spring-aop/README.md
+++ b/spring-aop/README.md
@@ -1,3 +1,7 @@
+## Spring AOP
+
+This module contains articles about Spring aspect oriented programming (AOP)
+
### Relevant articles
- [Implementing a Custom Spring AOP Annotation](http://www.baeldung.com/spring-aop-annotation)
diff --git a/spring-apache-camel/README.md b/spring-apache-camel/README.md
index e72e18b198..e89eb4fe6c 100644
--- a/spring-apache-camel/README.md
+++ b/spring-apache-camel/README.md
@@ -1,35 +1,26 @@
+## Spring Apache Camel
-
Configure and Use Apache Camel with Spring
+This module contains articles about Spring with Apache Camel
-This article will demonstrate how to configure and use Apache Camel with Spring Framework.
+### Relevant Articles
-
Relevant Articles
+- [Apache Camel](http://camel.apache.org/)
+- [Enterprise Integration Patterns](http://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html)
+- [Introduction To Apache Camel](http://www.baeldung.com/apache-camel-intro)
+- [Integration Patterns With Apache Camel](http://www.baeldung.com/camel-integration-patterns)
+- [Using Apache Camel with Spring](http://www.baeldung.com/spring-apache-camel-tutorial)
-
+To build this application execute:
-To build this application execute following maven command in ApacheCamelFileProcessor directory.
-
-mvn clean install
+`mvn clean install`
To run this application you can either run our main class App from your IDE or you can execute following maven command:
-mvn exec:java -Dexec.mainClass="App"
-
-