diff --git a/core-java-networking/README.md b/core-java-networking/README.md
index 4b77aa3c1f..b2367782b6 100644
--- a/core-java-networking/README.md
+++ b/core-java-networking/README.md
@@ -11,3 +11,6 @@
- [A Guide To HTTP Cookies In Java](http://www.baeldung.com/cookies-java)
- [A Guide to the Java URL](http://www.baeldung.com/java-url)
- [Working with Network Interfaces in Java](http://www.baeldung.com/java-network-interfaces)
+- [A Guide to Java Sockets](http://www.baeldung.com/a-guide-to-java-sockets)
+- [URL Encoding and Decoding in Java](http://www.baeldung.com/java-url-encoding-decoding)
+- [How to Perform a Simple HTTP Request in Java](http://www.baeldung.com/java-http-request)
\ No newline at end of file
diff --git a/core-java-networking/pom.xml b/core-java-networking/pom.xml
index c7fa2af180..d9c7c691e9 100644
--- a/core-java-networking/pom.xml
+++ b/core-java-networking/pom.xml
@@ -24,6 +24,16 @@
commons-io
${commons-io.version}
+
+ org.springframework
+ spring-web
+ ${springframework.spring-web.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
@@ -33,5 +43,7 @@
1.5.0-b01
2.5
+ 3.5
+ 4.3.4.RELEASE
diff --git a/core-java/src/main/java/com/baeldung/http/FullResponseBuilder.java b/core-java-networking/src/main/java/com/baeldung/http/FullResponseBuilder.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/http/FullResponseBuilder.java
rename to core-java-networking/src/main/java/com/baeldung/http/FullResponseBuilder.java
diff --git a/core-java/src/main/java/com/baeldung/http/ParameterStringBuilder.java b/core-java-networking/src/main/java/com/baeldung/http/ParameterStringBuilder.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/http/ParameterStringBuilder.java
rename to core-java-networking/src/main/java/com/baeldung/http/ParameterStringBuilder.java
diff --git a/core-java/src/main/java/com/baeldung/socket/EchoClient.java b/core-java-networking/src/main/java/com/baeldung/socket/EchoClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/socket/EchoClient.java
rename to core-java-networking/src/main/java/com/baeldung/socket/EchoClient.java
diff --git a/core-java/src/main/java/com/baeldung/socket/EchoMultiServer.java b/core-java-networking/src/main/java/com/baeldung/socket/EchoMultiServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/socket/EchoMultiServer.java
rename to core-java-networking/src/main/java/com/baeldung/socket/EchoMultiServer.java
diff --git a/core-java/src/main/java/com/baeldung/socket/EchoServer.java b/core-java-networking/src/main/java/com/baeldung/socket/EchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/socket/EchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/socket/EchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/socket/GreetClient.java b/core-java-networking/src/main/java/com/baeldung/socket/GreetClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/socket/GreetClient.java
rename to core-java-networking/src/main/java/com/baeldung/socket/GreetClient.java
diff --git a/core-java/src/main/java/com/baeldung/socket/GreetServer.java b/core-java-networking/src/main/java/com/baeldung/socket/GreetServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/socket/GreetServer.java
rename to core-java-networking/src/main/java/com/baeldung/socket/GreetServer.java
diff --git a/core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderUnitTest.java b/core-java-networking/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderUnitTest.java
rename to core-java-networking/src/test/java/com/baeldung/encoderdecoder/EncoderDecoderUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/http/HttpRequestLiveTest.java b/core-java-networking/src/test/java/com/baeldung/http/HttpRequestLiveTest.java
similarity index 99%
rename from core-java/src/test/java/com/baeldung/http/HttpRequestLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/http/HttpRequestLiveTest.java
index 752a75daa5..bd6c0a4410 100644
--- a/core-java/src/test/java/com/baeldung/http/HttpRequestLiveTest.java
+++ b/core-java-networking/src/test/java/com/baeldung/http/HttpRequestLiveTest.java
@@ -1,6 +1,6 @@
package com.baeldung.http;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import java.io.BufferedReader;
diff --git a/core-java/src/test/java/com/baeldung/socket/EchoIntegrationTest.java b/core-java-networking/src/test/java/com/baeldung/socket/EchoIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/socket/EchoIntegrationTest.java
rename to core-java-networking/src/test/java/com/baeldung/socket/EchoIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/socket/GreetServerIntegrationTest.java b/core-java-networking/src/test/java/com/baeldung/socket/GreetServerIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/socket/GreetServerIntegrationTest.java
rename to core-java-networking/src/test/java/com/baeldung/socket/GreetServerIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/socket/SocketEchoMultiIntegrationTest.java b/core-java-networking/src/test/java/com/baeldung/socket/SocketEchoMultiIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/socket/SocketEchoMultiIntegrationTest.java
rename to core-java-networking/src/test/java/com/baeldung/socket/SocketEchoMultiIntegrationTest.java
diff --git a/core-java-perf/README.md b/core-java-perf/README.md
index 6af1c82a0a..252ee4cc45 100644
--- a/core-java-perf/README.md
+++ b/core-java-perf/README.md
@@ -2,3 +2,7 @@
### Relevant Articles:
- [Verbose Garbage Collection in Java](https://www.baeldung.com/java-verbose-gc)
+- [Different Ways to Capture Java Heap Dumps](https://www.baeldung.com/java-heap-dump-capture)
+- [Understanding Memory Leaks in Java](https://www.baeldung.com/java-memory-leaks)
+- [OutOfMemoryError: GC Overhead Limit Exceeded](http://www.baeldung.com/java-gc-overhead-limit-exceeded)
+- [Basic Introduction to JMX](http://www.baeldung.com/java-management-extensions)
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/heapdump/HeapDump.java b/core-java-perf/src/main/java/com/baeldung/heapdump/HeapDump.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/heapdump/HeapDump.java
rename to core-java-perf/src/main/java/com/baeldung/heapdump/HeapDump.java
diff --git a/core-java/src/main/java/com/baeldung/jmx/Game.java b/core-java-perf/src/main/java/com/baeldung/jmx/Game.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/jmx/Game.java
rename to core-java-perf/src/main/java/com/baeldung/jmx/Game.java
diff --git a/core-java/src/main/java/com/baeldung/jmx/GameMBean.java b/core-java-perf/src/main/java/com/baeldung/jmx/GameMBean.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/jmx/GameMBean.java
rename to core-java-perf/src/main/java/com/baeldung/jmx/GameMBean.java
diff --git a/core-java/src/main/java/com/baeldung/jmx/JMXTutorialMainlauncher.java b/core-java-perf/src/main/java/com/baeldung/jmx/JMXTutorialMainlauncher.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/jmx/JMXTutorialMainlauncher.java
rename to core-java-perf/src/main/java/com/baeldung/jmx/JMXTutorialMainlauncher.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/equalshashcode/Person.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/equalshashcode/Person.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/equalshashcode/Person.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/equalshashcode/Person.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/equalshashcode/PersonOptimized.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/equalshashcode/PersonOptimized.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/equalshashcode/PersonOptimized.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/equalshashcode/PersonOptimized.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObject.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObject.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObject.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObject.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObjectOptimized.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObjectOptimized.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObjectOptimized.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/finalize/BulkyObjectOptimized.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/innerclass/BulkyObject.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/BulkyObject.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/innerclass/BulkyObject.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/BulkyObject.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassDriver.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassDriver.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassDriver.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassDriver.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassWrapper.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassWrapper.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassWrapper.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/InnerClassWrapper.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/innerclass/StaticNestedClassWrapper.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/StaticNestedClassWrapper.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/innerclass/StaticNestedClassWrapper.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/innerclass/StaticNestedClassWrapper.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/InternedString.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/InternedString.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/InternedString.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/InternedString.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/ReadStringFromFileUtil.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/ReadStringFromFileUtil.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/ReadStringFromFileUtil.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/ReadStringFromFileUtil.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/StringObject.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/StringObject.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/internedstrings/StringObject.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/internedstrings/StringObject.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsDemo.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsDemo.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsDemo.java
diff --git a/core-java/src/main/java/com/baeldung/memoryleaks/staticfields/StaticFieldsDemo.java b/core-java-perf/src/main/java/com/baeldung/memoryleaks/staticfields/StaticFieldsDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/memoryleaks/staticfields/StaticFieldsDemo.java
rename to core-java-perf/src/main/java/com/baeldung/memoryleaks/staticfields/StaticFieldsDemo.java
diff --git a/core-java/src/main/java/com/baeldung/outofmemoryerror/OutOfMemoryGCLimitExceed.java b/core-java-perf/src/main/java/com/baeldung/outofmemoryerror/OutOfMemoryGCLimitExceed.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/outofmemoryerror/OutOfMemoryGCLimitExceed.java
rename to core-java-perf/src/main/java/com/baeldung/outofmemoryerror/OutOfMemoryGCLimitExceed.java
diff --git a/core-java-perf/src/main/resources/logback.xml b/core-java-perf/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-perf/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/memoryleaks/equalshashcode/PersonMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/equalshashcode/PersonMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/equalshashcode/PersonMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/equalshashcode/PersonMemoryLeakUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/memoryleaks/finalize/FinalizeMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/finalize/FinalizeMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/finalize/FinalizeMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/finalize/FinalizeMemoryLeakUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/memoryleaks/innerclass/StaticInnerClassMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/innerclass/StaticInnerClassMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/innerclass/StaticInnerClassMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/innerclass/StaticInnerClassMemoryLeakUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/memoryleaks/internedstrings/StringInternMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/internedstrings/StringInternMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/internedstrings/StringInternMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/internedstrings/StringInternMemoryLeakUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/staticfields/NonStaticFieldsMemoryLeakUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/memoryleaks/staticfields/StaticFieldsMemoryLeakUnitTest.java b/core-java-perf/src/test/java/com/baeldung/memoryleaks/staticfields/StaticFieldsMemoryLeakUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/memoryleaks/staticfields/StaticFieldsMemoryLeakUnitTest.java
rename to core-java-perf/src/test/java/com/baeldung/memoryleaks/staticfields/StaticFieldsMemoryLeakUnitTest.java
diff --git a/core-java-sun/README.md b/core-java-sun/README.md
index 9cf8b26f1b..e2dba76b41 100644
--- a/core-java-sun/README.md
+++ b/core-java-sun/README.md
@@ -4,3 +4,4 @@
### Relevant Articles:
- [Creating a Java Compiler Plugin](http://www.baeldung.com/java-build-compiler-plugin)
+- [Guide to sun.misc.Unsafe](http://www.baeldung.com/java-unsafe)
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/unsafe/CASCounter.java b/core-java-sun/src/test/java/com/baeldung/unsafe/CASCounter.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/unsafe/CASCounter.java
rename to core-java-sun/src/test/java/com/baeldung/unsafe/CASCounter.java
diff --git a/core-java/src/test/java/com/baeldung/unsafe/OffHeapArray.java b/core-java-sun/src/test/java/com/baeldung/unsafe/OffHeapArray.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/unsafe/OffHeapArray.java
rename to core-java-sun/src/test/java/com/baeldung/unsafe/OffHeapArray.java
diff --git a/core-java/src/test/java/com/baeldung/unsafe/UnsafeUnitTest.java b/core-java-sun/src/test/java/com/baeldung/unsafe/UnsafeUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/unsafe/UnsafeUnitTest.java
rename to core-java-sun/src/test/java/com/baeldung/unsafe/UnsafeUnitTest.java
diff --git a/core-java/README.md b/core-java/README.md
index b0e8f81e1f..21c58bb880 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -6,19 +6,14 @@
- [Java Timer](http://www.baeldung.com/java-timer-and-timertask)
- [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)
- [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)
- [Pattern Search with Grep in Java](http://www.baeldung.com/grep-in-java)
-- [URL Encoding and Decoding in Java](http://www.baeldung.com/java-url-encoding-decoding)
- [How to Create an Executable JAR with Maven](http://www.baeldung.com/executable-jar-with-maven)
-- [Basic Introduction to JMX](http://www.baeldung.com/java-management-extensions)
- [Introduction to Nashorn](http://www.baeldung.com/java-nashorn)
- [Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency)
- [JVM Log Forging](http://www.baeldung.com/jvm-log-forging)
-- [Guide to sun.misc.Unsafe](http://www.baeldung.com/java-unsafe)
-- [How to Perform a Simple HTTP Request in Java](http://www.baeldung.com/java-http-request)
- [How to Add a Single Element to a Stream](http://www.baeldung.com/java-stream-append-prepend)
- [How to Find all Getters Returning Null](http://www.baeldung.com/java-getters-returning-null)
- [How to Get a Name of a Method Being Executed?](http://www.baeldung.com/java-name-of-executing-method)
@@ -26,7 +21,6 @@
- [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)
-- [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)
@@ -57,11 +51,9 @@
- [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)
- [Convert Double to String, Removing Decimal Places](https://www.baeldung.com/java-double-to-string)
-- [Different Ways to Capture Java Heap Dumps](https://www.baeldung.com/java-heap-dump-capture)
- [ZoneOffset in Java](https://www.baeldung.com/java-zone-offset)
- [Hashing a Password in Java](https://www.baeldung.com/java-password-hashing)
- [Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties)
-- [Understanding Memory Leaks in Java](https://www.baeldung.com/java-memory-leaks)
- [A Guide to SimpleDateFormat](https://www.baeldung.com/java-simple-date-format)
- [SSL Handshake Failures](https://www.baeldung.com/java-ssl-handshake-failures)
- [Changing the Order in a Sum Operation Can Produce Different Results?](https://www.baeldung.com/java-floating-point-sum-order)