diff --git a/core-java-concurrency/README.md b/core-java-concurrency/README.md
index 2db7b91cde..e8693a0231 100644
--- a/core-java-concurrency/README.md
+++ b/core-java-concurrency/README.md
@@ -31,3 +31,6 @@
- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield)
- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads)
- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch)
+- [Guide to the Fork/Join Framework in Java](http://www.baeldung.com/java-fork-join)
+- [A Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
+- [The Thread.join() Method in Java](http://www.baeldung.com/java-thread-join)
\ No newline at end of file
diff --git a/core-java-concurrency/pom.xml b/core-java-concurrency/pom.xml
index bd22253c2c..5dde4d5820 100644
--- a/core-java-concurrency/pom.xml
+++ b/core-java-concurrency/pom.xml
@@ -47,6 +47,16 @@
${avaitility.version}
test
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh-core.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh-generator-annprocess.version}
+
@@ -69,6 +79,8 @@
3.6.1
1.7.0
+ 1.19
+ 1.19
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
diff --git a/core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java b/core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
rename to core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
diff --git a/core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java b/core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
rename to core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
diff --git a/core-java/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java b/core-java-concurrency/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java b/core-java-concurrency/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java b/core-java-concurrency/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
diff --git a/core-java-networking/README.md b/core-java-networking/README.md
index 626ea794e6..2cb2c52d3d 100644
--- a/core-java-networking/README.md
+++ b/core-java-networking/README.md
@@ -5,3 +5,7 @@
### Relevant Articles
- [Connecting Through Proxy Servers in Core Java](https://www.baeldung.com/java-connect-via-proxy-server)
+- [Broadcasting and Multicasting in Java](http://www.baeldung.com/java-broadcast-multicast)
+- [A Guide To UDP In Java](http://www.baeldung.com/udp-in-java)
+- [Sending Emails with Java](http://www.baeldung.com/java-email)
+- [Console I/O in Java](http://www.baeldung.com/java-console-input-output)
\ No newline at end of file
diff --git a/core-java-networking/pom.xml b/core-java-networking/pom.xml
index 178295e1ec..7d7bf4bc95 100644
--- a/core-java-networking/pom.xml
+++ b/core-java-networking/pom.xml
@@ -13,7 +13,19 @@
../parent-java
+
+
+ javax.mail
+ mail
+ ${javax.mail.version}
+
+
+
core-java-networking
+
+
+ 1.5.0-b01
+
diff --git a/core-java/src/main/java/com/baeldung/console/ConsoleConsoleClass.java b/core-java-networking/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
rename to core-java-networking/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
diff --git a/core-java/src/main/java/com/baeldung/console/ConsoleScannerClass.java b/core-java-networking/src/main/java/com/baeldung/console/ConsoleScannerClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/console/ConsoleScannerClass.java
rename to core-java-networking/src/main/java/com/baeldung/console/ConsoleScannerClass.java
diff --git a/core-java/src/main/java/com/baeldung/mail/EmailService.java b/core-java-networking/src/main/java/com/baeldung/mail/EmailService.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/mail/EmailService.java
rename to core-java-networking/src/main/java/com/baeldung/mail/EmailService.java
diff --git a/core-java/src/main/java/com/baeldung/networking/README.md b/core-java-networking/src/main/java/com/baeldung/networking/README.md
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/README.md
rename to core-java-networking/src/main/java/com/baeldung/networking/README.md
diff --git a/core-java/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java b/core-java-networking/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
rename to core-java-networking/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
diff --git a/core-java/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java b/core-java-networking/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
rename to core-java-networking/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/EchoClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/EchoClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/EchoClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/EchoClient.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/EchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/EchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/EchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/EchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
diff --git a/core-java-networking/src/main/resources/logback.xml b/core-java-networking/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-networking/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
diff --git a/core-java/README.md b/core-java/README.md
index 4fbc8bbc6e..961ca45cce 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -7,7 +7,6 @@
- [How to Run a Shell Command in Java](http://www.baeldung.com/run-shell-command-in-java)
- [MD5 Hashing in Java](http://www.baeldung.com/java-md5)
- [A Guide to Java Sockets](http://www.baeldung.com/a-guide-to-java-sockets)
-- [Guide to the Fork/Join Framework in Java](http://www.baeldung.com/java-fork-join)
- [How to Print Screen in Java](http://www.baeldung.com/print-screen-in-java)
- [A Guide To Java Regular Expressions API](http://www.baeldung.com/regular-expressions-java)
- [Getting Started with Java Properties](http://www.baeldung.com/java-properties)
@@ -27,13 +26,11 @@
- [Guide to UUID in Java](http://www.baeldung.com/java-uuid)
- [Guide to Escaping Characters in Java RegExps](http://www.baeldung.com/java-regexp-escape-char)
- [Difference between URL and URI](http://www.baeldung.com/java-url-vs-uri)
-- [Broadcasting and Multicasting in Java](http://www.baeldung.com/java-broadcast-multicast)
- [OutOfMemoryError: GC Overhead Limit Exceeded](http://www.baeldung.com/java-gc-overhead-limit-exceeded)
- [Creating a Java Compiler Plugin](http://www.baeldung.com/java-build-compiler-plugin)
- [Quick Guide to Java Stack](http://www.baeldung.com/java-stack)
- [Guide to java.util.Formatter](http://www.baeldung.com/java-string-formatter)
- [Guide to the Cipher Class](http://www.baeldung.com/java-cipher-class)
-- [A Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
- [Compiling Java *.class Files with javac](http://www.baeldung.com/javac)
- [A Guide to Iterator in Java](http://www.baeldung.com/java-iterator)
- [Introduction to Javadoc](http://www.baeldung.com/javadoc)
@@ -42,31 +39,20 @@
- [How to Detect the OS Using Java](http://www.baeldung.com/java-detect-os)
- [ASCII Art in Java](http://www.baeldung.com/ascii-art-in-java)
- [What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid)
-- [A Guide To UDP In Java](http://www.baeldung.com/udp-in-java)
- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle)
- [Class Loaders in Java](http://www.baeldung.com/java-classloaders)
-- [Sending Emails with Java](http://www.baeldung.com/java-email)
- [Introduction to SSL in Java](http://www.baeldung.com/java-ssl)
- [Java KeyStore API](http://www.baeldung.com/java-keystore)
- [Double-Checked Locking with Singleton](http://www.baeldung.com/java-singleton-double-checked-locking)
- [Guide to Java Clock Class](http://www.baeldung.com/java-clock)
-- [Introduction to Creational Design Patterns](http://www.baeldung.com/creational-design-patterns)
-- [Proxy, Decorator, Adapter and Bridge Patterns](http://www.baeldung.com/java-structural-design-patterns)
-- [Singletons in Java](http://www.baeldung.com/java-singleton)
-- [Flyweight Pattern in Java](http://www.baeldung.com/java-flyweight)
-- [The Observer Pattern in Java](http://www.baeldung.com/java-observer-pattern)
-- [Service Locator Pattern](http://www.baeldung.com/java-service-locator-pattern)
-- [The Thread.join() Method in Java](http://www.baeldung.com/java-thread-join)
- [Importance of Main Manifest Attribute in a Self-Executing JAR](http://www.baeldung.com/java-jar-executable-manifest-main-class)
- [How to Get the File Extension of a File in Java](http://www.baeldung.com/java-file-extension)
-- [Console I/O in Java](http://www.baeldung.com/java-console-input-output)
- [Java Global Exception Handler](http://www.baeldung.com/java-global-exception-handler)
- [Encrypting and Decrypting Files in Java](http://www.baeldung.com/java-cipher-input-output-stream)
- [How to Get the Size of an Object in Java](http://www.baeldung.com/java-size-of-object)
- [Guide to Java Instrumentation](http://www.baeldung.com/java-instrumentation)
- [Getting a File’s Mime Type in Java](http://www.baeldung.com/java-file-mime-type)
- [Common Java Exceptions](http://www.baeldung.com/java-common-exceptions)
-- [Java Constructors vs Static Factory Methods](https://www.baeldung.com/java-constructors-vs-static-factory-methods)
- [Throw Exception in Optional in Java 8](https://www.baeldung.com/java-optional-throw-exception)
- [Add a Character to a String at a Given Position](https://www.baeldung.com/java-add-character-to-string)
- [Calculating the nth Root in Java](https://www.baeldung.com/java-nth-root)
diff --git a/core-java/pom.xml b/core-java/pom.xml
index 64345ab14c..e5786f65c3 100644
--- a/core-java/pom.xml
+++ b/core-java/pom.xml
@@ -131,11 +131,6 @@
h2
${h2database.version}
-
- javax.mail
- mail
- ${javax.mail.version}
-
org.apache.tika
@@ -514,7 +509,6 @@
1.19
3.0.0-M1
- 1.5.0-b01
3.0.2
1.4.4
3.1.1
diff --git a/patterns/README.md b/patterns/README.md
index 221cba6456..9653558f43 100644
--- a/patterns/README.md
+++ b/patterns/README.md
@@ -5,4 +5,10 @@
- [Chain of Responsibility Design Pattern in Java](http://www.baeldung.com/chain-of-responsibility-pattern)
- [The Command Pattern in Java](http://www.baeldung.com/java-command-pattern)
- [The DAO Pattern in Java](http://www.baeldung.com/java-dao-pattern)
-
+- [Introduction to Creational Design Patterns](http://www.baeldung.com/creational-design-patterns)
+- [Proxy, Decorator, Adapter and Bridge Patterns](http://www.baeldung.com/java-structural-design-patterns)
+- [Singletons in Java](http://www.baeldung.com/java-singleton)
+- [Flyweight Pattern in Java](http://www.baeldung.com/java-flyweight)
+- [The Observer Pattern in Java](http://www.baeldung.com/java-observer-pattern)
+- [Service Locator Pattern](http://www.baeldung.com/java-service-locator-pattern)
+- [Java Constructors vs Static Factory Methods](https://www.baeldung.com/java-constructors-vs-static-factory-methods)
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java b/patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
rename to patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
diff --git a/core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java b/patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
rename to patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
diff --git a/core-java/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java b/patterns/design-patterns/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java
rename to patterns/design-patterns/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java