diff --git a/core-java-arrays/.gitignore b/core-java-arrays/.gitignore
new file mode 100644
index 0000000000..374c8bf907
--- /dev/null
+++ b/core-java-arrays/.gitignore
@@ -0,0 +1,25 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-arrays/README.md b/core-java-arrays/README.md
new file mode 100644
index 0000000000..bda2cf90bf
--- /dev/null
+++ b/core-java-arrays/README.md
@@ -0,0 +1,15 @@
+=========
+
+## Core Java Arrays Cookbooks and Examples
+
+### Relevant Articles:
+- [How to Copy an Array in Java](http://www.baeldung.com/java-array-copy)
+- [Check if a Java Array Contains a Value](http://www.baeldung.com/java-array-contains-value)
+- [Initializing Arrays in Java](http://www.baeldung.com/java-initialize-array)
+- [Guide to the java.util.Arrays Class](http://www.baeldung.com/java-util-arrays)
+- [Jagged Arrays In Java](http://www.baeldung.com/java-jagged-arrays)
+- [Find Sum and Average in a Java Array](http://www.baeldung.com/java-array-sum-average)
+- [Arrays in Java: A Reference Guide](https://www.baeldung.com/java-arrays-guide)
+- [How to Invert an Array in Java](http://www.baeldung.com/java-invert-array)
+- [Array Operations in Java](http://www.baeldung.com/java-common-array-operations)
+
diff --git a/core-java-arrays/pom.xml b/core-java-arrays/pom.xml
new file mode 100644
index 0000000000..d2d0453e87
--- /dev/null
+++ b/core-java-arrays/pom.xml
@@ -0,0 +1,412 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-arrays
+ 0.1.0-SNAPSHOT
+ jar
+ core-java-arrays
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${org.slf4j.version}
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh-core.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh-generator-annprocess.version}
+
+
+ org.springframework
+ spring-web
+ ${springframework.spring-web.version}
+
+
+
+
+ core-java-arrays
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*LiveTest.java
+ **/*IntegrationTest.java
+ **/*IntTest.java
+ **/*LongRunningUnitTest.java
+ **/*ManualTest.java
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-dependencies
+ prepare-package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/libs
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+
+
+ true
+ libs/
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+ ${project.basedir}
+
+
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven-shade-plugin.version}
+
+
+
+ shade
+
+
+ true
+
+
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+
+
+ com.jolira
+ onejar-maven-plugin
+ ${onejar-maven-plugin.version}
+
+
+
+ org.baeldung.executable.ExecutableMavenJar
+ true
+ ${project.build.finalName}-onejar.${project.packaging}
+
+
+ one-jar
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot-maven-plugin.version}
+
+
+
+ repackage
+
+
+ spring-boot
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec-maven-plugin.version}
+
+ java
+ com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
+
+ -Xmx300m
+ -XX:+UseParallelGC
+ -classpath
+
+ com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${maven-javadoc-plugin.version}
+
+
+ 1.8
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*ManualTest.java
+
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec-maven-plugin.version}
+
+
+ run-benchmarks
+
+ none
+
+ exec
+
+
+ test
+ java
+
+ -classpath
+
+ org.openjdk.jmh.Main
+ .*
+
+
+
+
+
+
+
+
+
+
+
+ buildAgentLoader
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ agentLoader
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/application/AgentLoader.class
+ com/baeldung/instrumentation/application/Launcher.class
+
+
+
+
+
+
+
+
+
+ buildApplication
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ application
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/application/MyAtm.class
+ com/baeldung/instrumentation/application/MyAtmApplication.class
+ com/baeldung/instrumentation/application/Launcher.class
+
+
+
+
+
+
+
+
+
+ buildAgent
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ agent
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/agent/AtmTransformer.class
+ com/baeldung/instrumentation/agent/MyInstrumentationAgent.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3.8.1
+ 1.16.12
+
+ 1.19
+ 1.19
+
+
+ 3.10.0
+
+
+ 2.21.0
+ 4.3.4.RELEASE
+ 3.0.0-M1
+ 3.0.2
+ 1.4.4
+ 3.1.1
+ 2.0.3.RELEASE
+ 1.6.0
+
+
+
diff --git a/core-java/src/main/java/com/baeldung/array/ArrayBenchmarkRunner.java b/core-java-arrays/src/main/java/com/baeldung/array/ArrayBenchmarkRunner.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/ArrayBenchmarkRunner.java
rename to core-java-arrays/src/main/java/com/baeldung/array/ArrayBenchmarkRunner.java
diff --git a/core-java/src/main/java/com/baeldung/array/ArrayInitializer.java b/core-java-arrays/src/main/java/com/baeldung/array/ArrayInitializer.java
similarity index 97%
rename from core-java/src/main/java/com/baeldung/array/ArrayInitializer.java
rename to core-java-arrays/src/main/java/com/baeldung/array/ArrayInitializer.java
index 0ba6c342d9..d2b0428904 100644
--- a/core-java/src/main/java/com/baeldung/array/ArrayInitializer.java
+++ b/core-java-arrays/src/main/java/com/baeldung/array/ArrayInitializer.java
@@ -2,7 +2,7 @@ package com.baeldung.array;
import java.util.Arrays;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
public class ArrayInitializer {
diff --git a/core-java/src/main/java/com/baeldung/array/ArrayInverter.java b/core-java-arrays/src/main/java/com/baeldung/array/ArrayInverter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/ArrayInverter.java
rename to core-java-arrays/src/main/java/com/baeldung/array/ArrayInverter.java
diff --git a/core-java/src/main/java/com/baeldung/array/ArrayReferenceGuide.java b/core-java-arrays/src/main/java/com/baeldung/array/ArrayReferenceGuide.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/ArrayReferenceGuide.java
rename to core-java-arrays/src/main/java/com/baeldung/array/ArrayReferenceGuide.java
diff --git a/core-java/src/main/java/com/baeldung/array/Find2ndLargestInArray.java b/core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/Find2ndLargestInArray.java
rename to core-java-arrays/src/main/java/com/baeldung/array/Find2ndLargestInArray.java
diff --git a/core-java/src/main/java/com/baeldung/array/FindElementInArray.java b/core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/FindElementInArray.java
rename to core-java-arrays/src/main/java/com/baeldung/array/FindElementInArray.java
diff --git a/core-java/src/main/java/com/baeldung/array/JaggedArray.java b/core-java-arrays/src/main/java/com/baeldung/array/JaggedArray.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/JaggedArray.java
rename to core-java-arrays/src/main/java/com/baeldung/array/JaggedArray.java
diff --git a/core-java/src/main/java/com/baeldung/array/SearchArrayUnitTest.java b/core-java-arrays/src/main/java/com/baeldung/array/SearchArrayUnitTest.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/SearchArrayUnitTest.java
rename to core-java-arrays/src/main/java/com/baeldung/array/SearchArrayUnitTest.java
diff --git a/core-java/src/main/java/com/baeldung/array/SumAndAverageInArray.java b/core-java-arrays/src/main/java/com/baeldung/array/SumAndAverageInArray.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/array/SumAndAverageInArray.java
rename to core-java-arrays/src/main/java/com/baeldung/array/SumAndAverageInArray.java
diff --git a/core-java-collections/src/main/java/com/baeldung/array/operations/ArrayOperations.java b/core-java-arrays/src/main/java/com/baeldung/array/operations/ArrayOperations.java
similarity index 100%
rename from core-java-collections/src/main/java/com/baeldung/array/operations/ArrayOperations.java
rename to core-java-arrays/src/main/java/com/baeldung/array/operations/ArrayOperations.java
diff --git a/core-java/src/main/java/com/baeldung/arraycopy/model/Address.java b/core-java-arrays/src/main/java/com/baeldung/arraycopy/model/Address.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/arraycopy/model/Address.java
rename to core-java-arrays/src/main/java/com/baeldung/arraycopy/model/Address.java
diff --git a/core-java/src/main/java/com/baeldung/arraycopy/model/Employee.java b/core-java-arrays/src/main/java/com/baeldung/arraycopy/model/Employee.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/arraycopy/model/Employee.java
rename to core-java-arrays/src/main/java/com/baeldung/arraycopy/model/Employee.java
diff --git a/core-java/src/test/java/com/baeldung/array/ArrayInitializerUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/ArrayInitializerUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/ArrayInitializerUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/ArrayInitializerUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/array/ArrayInverterUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/ArrayInverterUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/ArrayInverterUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/ArrayInverterUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/Find2ndLargestInArrayUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/FindElementInArrayUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/array/JaggedArrayUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/JaggedArrayUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/JaggedArrayUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/JaggedArrayUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/array/SumAndAverageInArrayUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/SumAndAverageInArrayUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/array/SumAndAverageInArrayUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/SumAndAverageInArrayUnitTest.java
diff --git a/core-java-collections/src/test/java/com/baeldung/array/operations/ArrayOperationsUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/array/operations/ArrayOperationsUnitTest.java
similarity index 100%
rename from core-java-collections/src/test/java/com/baeldung/array/operations/ArrayOperationsUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/array/operations/ArrayOperationsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/arraycopy/ArrayCopyUtilUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/arraycopy/ArrayCopyUtilUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/arraycopy/ArrayCopyUtilUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/arraycopy/ArrayCopyUtilUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/arrays/ArraysUnitTest.java b/core-java-arrays/src/test/java/com/baeldung/arrays/ArraysUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/arrays/ArraysUnitTest.java
rename to core-java-arrays/src/test/java/com/baeldung/arrays/ArraysUnitTest.java
diff --git a/core-java-lang/.gitignore b/core-java-lang/.gitignore
new file mode 100644
index 0000000000..374c8bf907
--- /dev/null
+++ b/core-java-lang/.gitignore
@@ -0,0 +1,25 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-lang/README.md b/core-java-lang/README.md
new file mode 100644
index 0000000000..85312cba68
--- /dev/null
+++ b/core-java-lang/README.md
@@ -0,0 +1,59 @@
+=========
+
+## Core Java Lang Cookbooks and Examples
+
+### Relevant Articles:
+- [Guide to Java Reflection](http://www.baeldung.com/java-reflection)
+- [Introduction to Java Generics](http://www.baeldung.com/java-generics)
+- [Generate equals() and hashCode() with Eclipse](http://www.baeldung.com/java-eclipse-equals-and-hashcode)
+- [Chained Exceptions in Java](http://www.baeldung.com/java-chained-exceptions)
+- [Java Primitive Conversions](http://www.baeldung.com/java-primitive-conversions)
+- [Call Methods at Runtime Using Java Reflection](http://www.baeldung.com/java-method-reflection)
+- [Iterating Over Enum Values in Java](http://www.baeldung.com/java-enum-iteration)
+- [Changing Annotation Parameters At Runtime](http://www.baeldung.com/java-reflection-change-annotation-params)
+- [Dynamic Proxies in Java](http://www.baeldung.com/java-dynamic-proxies)
+- [Java Double Brace Initialization](http://www.baeldung.com/java-double-brace-initialization)
+- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
+- [Guide to the Diamond Operator in Java](http://www.baeldung.com/java-diamond-operator)
+- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
+- [Quick Example - Comparator vs Comparable in Java](http://www.baeldung.com/java-comparator-comparable)
+- [The Java continue and break Keywords](http://www.baeldung.com/java-continue-and-break)
+- [A Guide to Java Initialization](http://www.baeldung.com/java-initialization)
+- [Nested Classes in Java](http://www.baeldung.com/java-nested-classes)
+- [A Guide to Java Loops](http://www.baeldung.com/java-loops)
+- [Varargs in Java](http://www.baeldung.com/java-varargs)
+- [A Guide to Inner Interfaces in Java](http://www.baeldung.com/java-inner-interfaces)
+- [Polymorphism in Java](http://www.baeldung.com/java-polymorphism)
+- [Recursion In Java](http://www.baeldung.com/java-recursion)
+- [A Guide to the finalize Method in Java](http://www.baeldung.com/java-finalize)
+- [Method Overloading and Overriding in Java](http://www.baeldung.com/java-method-overload-override)
+- [How to Make a Deep Copy of an Object in Java](http://www.baeldung.com/java-deep-copy)
+- [Guide to Inheritance in Java](http://www.baeldung.com/java-inheritance)
+- [Object Type Casting in Java](http://www.baeldung.com/java-type-casting)
+- [The "final" Keyword in Java](http://www.baeldung.com/java-final)
+- [A Guide to Java Enums](http://www.baeldung.com/a-guide-to-java-enums)
+- [Infinite Loops in Java](http://www.baeldung.com/infinite-loops-java)
+- [Quick Guide to java.lang.System](http://www.baeldung.com/java-lang-system)
+- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
+- [Using Java Assertions](http://www.baeldung.com/java-assert)
+- [Pass-By-Value as a Parameter Passing Mechanism in Java](http://www.baeldung.com/java-pass-by-value-or-pass-by-reference)
+- [Variable and Method Hiding in Java](http://www.baeldung.com/java-variable-method-hiding)
+- [Access Modifiers in Java](http://www.baeldung.com/java-access-modifiers)
+- [Guide to the super Java Keyword](http://www.baeldung.com/java-super)
+- [Guide to the this Java Keyword](http://www.baeldung.com/java-this)
+- [Immutable Objects in Java](http://www.baeldung.com/java-immutable-object)
+- [ClassNotFoundException vs NoClassDefFoundError](http://www.baeldung.com/java-classnotfoundexception-and-noclassdeffounderror)
+- [The StackOverflowError in Java](http://www.baeldung.com/java-stack-overflow-error)
+- [Create a Custom Exception in Java](http://www.baeldung.com/java-new-custom-exception)
+- [Exception Handling in Java](http://www.baeldung.com/java-exceptions)
+- [Differences Between Final, Finally and Finalize in Java](https://www.baeldung.com/java-final-finally-finalize)
+- [Static and Dynamic Binding in Java](https://www.baeldung.com/java-static-dynamic-binding)
+- [Difference Between Throw and Throws in Java](https://www.baeldung.com/java-throw-throws)
+- [Synthetic Constructs in Java](https://www.baeldung.com/java-synthetic)
+- [Java Switch Statement](https://www.baeldung.com/java-switch)
+- [The Modulo Operator in Java](https://www.baeldung.com/modulo-java)
+- [Ternary Operator In Java](https://www.baeldung.com/java-ternary-operator)
+- [How to Separate Double into Integer and Decimal Parts](https://www.baeldung.com/java-separate-double-into-integer-decimal-parts)
+- [“Sneaky Throws” in Java](http://www.baeldung.com/java-sneaky-throws)
+- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](http://www.baeldung.com/java-inheritance-composition)
+
diff --git a/core-java-lang/pom.xml b/core-java-lang/pom.xml
new file mode 100644
index 0000000000..ace39de274
--- /dev/null
+++ b/core-java-lang/pom.xml
@@ -0,0 +1,429 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-lang
+ 0.1.0-SNAPSHOT
+ jar
+ core-java-lang
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${org.slf4j.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+ org.springframework
+ spring-web
+ ${springframework.spring-web.version}
+
+
+ javax.mail
+ mail
+ ${javax.mail.version}
+
+
+
+
+ core-java-lang
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*LiveTest.java
+ **/*IntegrationTest.java
+ **/*IntTest.java
+ **/*LongRunningUnitTest.java
+ **/*ManualTest.java
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-dependencies
+ prepare-package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/libs
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+
+
+ true
+ libs/
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+ ${project.basedir}
+
+
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven-shade-plugin.version}
+
+
+
+ shade
+
+
+ true
+
+
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+
+
+ com.jolira
+ onejar-maven-plugin
+ ${onejar-maven-plugin.version}
+
+
+
+ org.baeldung.executable.ExecutableMavenJar
+ true
+ ${project.build.finalName}-onejar.${project.packaging}
+
+
+ one-jar
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot-maven-plugin.version}
+
+
+
+ repackage
+
+
+ spring-boot
+ org.baeldung.executable.ExecutableMavenJar
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec-maven-plugin.version}
+
+ java
+ com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
+
+ -Xmx300m
+ -XX:+UseParallelGC
+ -classpath
+
+ com.baeldung.outofmemoryerror.OutOfMemoryGCLimitExceed
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${maven-javadoc-plugin.version}
+
+
+ 1.8
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*ManualTest.java
+
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec-maven-plugin.version}
+
+
+ run-benchmarks
+
+ none
+
+ exec
+
+
+ test
+ java
+
+ -classpath
+
+ org.openjdk.jmh.Main
+ .*
+
+
+
+
+
+
+
+
+
+
+
+ buildAgentLoader
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ agentLoader
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/application/AgentLoader.class
+ com/baeldung/instrumentation/application/Launcher.class
+
+
+
+
+
+
+
+
+
+ buildApplication
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ application
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/application/MyAtm.class
+ com/baeldung/instrumentation/application/MyAtmApplication.class
+ com/baeldung/instrumentation/application/Launcher.class
+
+
+
+
+
+
+
+
+
+ buildAgent
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ package
+
+ jar
+
+
+ agent
+ target/classes
+
+
+ true
+
+ ${project.build.outputDirectory}/META-INF/MANIFEST.MF
+
+
+
+ com/baeldung/instrumentation/agent/AtmTransformer.class
+ com/baeldung/instrumentation/agent/MyInstrumentationAgent.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.8.5
+ 2.8.2
+
+
+ 3.5
+ 1.16.12
+
+ 1.5.0-b01
+
+
+ 3.10.0
+
+
+ 2.21.0
+ 4.3.4.RELEASE
+ 3.0.0-M1
+ 3.0.2
+ 1.4.4
+ 3.1.1
+ 2.0.3.RELEASE
+ 1.6.0
+
+
+
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/Public.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/Public.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/SubClass.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/SubClass.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
diff --git a/core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java b/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
rename to core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
diff --git a/core-java/src/main/java/com/baeldung/assertion/Assertion.java b/core-java-lang/src/main/java/com/baeldung/assertion/Assertion.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/assertion/Assertion.java
rename to core-java-lang/src/main/java/com/baeldung/assertion/Assertion.java
diff --git a/core-java/src/main/java/com/baeldung/binding/Animal.java b/core-java-lang/src/main/java/com/baeldung/binding/Animal.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/binding/Animal.java
rename to core-java-lang/src/main/java/com/baeldung/binding/Animal.java
diff --git a/core-java/src/main/java/com/baeldung/binding/AnimalActivity.java b/core-java-lang/src/main/java/com/baeldung/binding/AnimalActivity.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/binding/AnimalActivity.java
rename to core-java-lang/src/main/java/com/baeldung/binding/AnimalActivity.java
diff --git a/core-java/src/main/java/com/baeldung/binding/Cat.java b/core-java-lang/src/main/java/com/baeldung/binding/Cat.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/binding/Cat.java
rename to core-java-lang/src/main/java/com/baeldung/binding/Cat.java
diff --git a/core-java/src/main/java/com/baeldung/breakcontinue/BreakContinue.java b/core-java-lang/src/main/java/com/baeldung/breakcontinue/BreakContinue.java
similarity index 99%
rename from core-java/src/main/java/com/baeldung/breakcontinue/BreakContinue.java
rename to core-java-lang/src/main/java/com/baeldung/breakcontinue/BreakContinue.java
index ce85b487c1..23bb531273 100644
--- a/core-java/src/main/java/com/baeldung/breakcontinue/BreakContinue.java
+++ b/core-java-lang/src/main/java/com/baeldung/breakcontinue/BreakContinue.java
@@ -11,6 +11,7 @@ import java.util.Map.Entry;
* @author Santosh
*
*/
+
public class BreakContinue {
public static int unlabeledBreak() {
diff --git a/core-java/src/main/java/com/baeldung/casting/Animal.java b/core-java-lang/src/main/java/com/baeldung/casting/Animal.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/Animal.java
rename to core-java-lang/src/main/java/com/baeldung/casting/Animal.java
diff --git a/core-java/src/main/java/com/baeldung/casting/AnimalFeeder.java b/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/AnimalFeeder.java
rename to core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java
diff --git a/core-java/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java b/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
rename to core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
diff --git a/core-java/src/main/java/com/baeldung/casting/Cat.java b/core-java-lang/src/main/java/com/baeldung/casting/Cat.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/Cat.java
rename to core-java-lang/src/main/java/com/baeldung/casting/Cat.java
diff --git a/core-java/src/main/java/com/baeldung/casting/Dog.java b/core-java-lang/src/main/java/com/baeldung/casting/Dog.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/Dog.java
rename to core-java-lang/src/main/java/com/baeldung/casting/Dog.java
diff --git a/core-java/src/main/java/com/baeldung/casting/Mew.java b/core-java-lang/src/main/java/com/baeldung/casting/Mew.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/casting/Mew.java
rename to core-java-lang/src/main/java/com/baeldung/casting/Mew.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/LogWithChain.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/LogWithChain.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/LogWithChain.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/LogWithChain.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java b/core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java
rename to core-java-lang/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java
diff --git a/core-java/src/main/java/com/baeldung/comparable/Player.java b/core-java-lang/src/main/java/com/baeldung/comparable/Player.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparable/Player.java
rename to core-java-lang/src/main/java/com/baeldung/comparable/Player.java
diff --git a/core-java/src/main/java/com/baeldung/comparable/PlayerSorter.java b/core-java-lang/src/main/java/com/baeldung/comparable/PlayerSorter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparable/PlayerSorter.java
rename to core-java-lang/src/main/java/com/baeldung/comparable/PlayerSorter.java
diff --git a/core-java/src/main/java/com/baeldung/comparator/Player.java b/core-java-lang/src/main/java/com/baeldung/comparator/Player.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparator/Player.java
rename to core-java-lang/src/main/java/com/baeldung/comparator/Player.java
diff --git a/core-java/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java b/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java
rename to core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeComparator.java
diff --git a/core-java/src/main/java/com/baeldung/comparator/PlayerAgeSorter.java b/core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeSorter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparator/PlayerAgeSorter.java
rename to core-java-lang/src/main/java/com/baeldung/comparator/PlayerAgeSorter.java
diff --git a/core-java/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java b/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java
rename to core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingComparator.java
diff --git a/core-java/src/main/java/com/baeldung/comparator/PlayerRankingSorter.java b/core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingSorter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/comparator/PlayerRankingSorter.java
rename to core-java-lang/src/main/java/com/baeldung/comparator/PlayerRankingSorter.java
diff --git a/core-java/src/main/java/com/baeldung/customexception/FileManager.java b/core-java-lang/src/main/java/com/baeldung/customexception/FileManager.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/customexception/FileManager.java
rename to core-java-lang/src/main/java/com/baeldung/customexception/FileManager.java
diff --git a/core-java/src/main/java/com/baeldung/customexception/IncorrectFileExtensionException.java b/core-java-lang/src/main/java/com/baeldung/customexception/IncorrectFileExtensionException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/customexception/IncorrectFileExtensionException.java
rename to core-java-lang/src/main/java/com/baeldung/customexception/IncorrectFileExtensionException.java
diff --git a/core-java/src/main/java/com/baeldung/customexception/IncorrectFileNameException.java b/core-java-lang/src/main/java/com/baeldung/customexception/IncorrectFileNameException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/customexception/IncorrectFileNameException.java
rename to core-java-lang/src/main/java/com/baeldung/customexception/IncorrectFileNameException.java
diff --git a/core-java/src/main/java/com/baeldung/deepcopy/Address.java b/core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/deepcopy/Address.java
rename to core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java
diff --git a/core-java/src/main/java/com/baeldung/deepcopy/User.java b/core-java-lang/src/main/java/com/baeldung/deepcopy/User.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/deepcopy/User.java
rename to core-java-lang/src/main/java/com/baeldung/deepcopy/User.java
diff --git a/core-java/src/main/java/com/baeldung/doubles/SplitFloatingPointNumbers.java b/core-java-lang/src/main/java/com/baeldung/doubles/SplitFloatingPointNumbers.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/doubles/SplitFloatingPointNumbers.java
rename to core-java-lang/src/main/java/com/baeldung/doubles/SplitFloatingPointNumbers.java
diff --git a/core-java/src/main/java/com/baeldung/dynamicproxy/DynamicInvocationHandler.java b/core-java-lang/src/main/java/com/baeldung/dynamicproxy/DynamicInvocationHandler.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/dynamicproxy/DynamicInvocationHandler.java
rename to core-java-lang/src/main/java/com/baeldung/dynamicproxy/DynamicInvocationHandler.java
diff --git a/core-java/src/main/java/com/baeldung/dynamicproxy/TimingDynamicInvocationHandler.java b/core-java-lang/src/main/java/com/baeldung/dynamicproxy/TimingDynamicInvocationHandler.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/dynamicproxy/TimingDynamicInvocationHandler.java
rename to core-java-lang/src/main/java/com/baeldung/dynamicproxy/TimingDynamicInvocationHandler.java
diff --git a/core-java/src/main/java/com/baeldung/enums/Pizza.java b/core-java-lang/src/main/java/com/baeldung/enums/Pizza.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/enums/Pizza.java
rename to core-java-lang/src/main/java/com/baeldung/enums/Pizza.java
diff --git a/core-java/src/main/java/com/baeldung/enums/PizzaDeliveryStrategy.java b/core-java-lang/src/main/java/com/baeldung/enums/PizzaDeliveryStrategy.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/enums/PizzaDeliveryStrategy.java
rename to core-java-lang/src/main/java/com/baeldung/enums/PizzaDeliveryStrategy.java
diff --git a/core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java b/core-java-lang/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java
rename to core-java-lang/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java
diff --git a/core-java/src/main/java/com/baeldung/enums/README.md b/core-java-lang/src/main/java/com/baeldung/enums/README.md
similarity index 100%
rename from core-java/src/main/java/com/baeldung/enums/README.md
rename to core-java-lang/src/main/java/com/baeldung/enums/README.md
diff --git a/core-java/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java b/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
rename to core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
diff --git a/core-java/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java b/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
rename to core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
diff --git a/core-java/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java b/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
rename to core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
diff --git a/core-java/src/main/java/com/baeldung/equalshashcode/entities/Shape.java b/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
rename to core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
diff --git a/core-java/src/main/java/com/baeldung/equalshashcode/entities/Square.java b/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/equalshashcode/entities/Square.java
rename to core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/Exceptions.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/Exceptions.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/Exceptions.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/Exceptions.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/MyException.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/MyException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/MyException.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/MyException.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/Player.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/Player.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/Player.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/Player.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/PlayerLoadException.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/PlayerLoadException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/PlayerLoadException.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/PlayerLoadException.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/PlayerScoreException.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/PlayerScoreException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/PlayerScoreException.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/PlayerScoreException.java
diff --git a/core-java/src/main/java/com/baeldung/exceptionhandling/TimeoutException.java b/core-java-lang/src/main/java/com/baeldung/exceptionhandling/TimeoutException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/exceptionhandling/TimeoutException.java
rename to core-java-lang/src/main/java/com/baeldung/exceptionhandling/TimeoutException.java
diff --git a/core-java/src/main/java/com/baeldung/finalize/CloseableResource.java b/core-java-lang/src/main/java/com/baeldung/finalize/CloseableResource.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalize/CloseableResource.java
rename to core-java-lang/src/main/java/com/baeldung/finalize/CloseableResource.java
diff --git a/core-java/src/main/java/com/baeldung/finalize/Finalizable.java b/core-java-lang/src/main/java/com/baeldung/finalize/Finalizable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalize/Finalizable.java
rename to core-java-lang/src/main/java/com/baeldung/finalize/Finalizable.java
diff --git a/core-java/src/main/java/com/baeldung/finalkeyword/BlackCat.java b/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalkeyword/BlackCat.java
rename to core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java
diff --git a/core-java/src/main/java/com/baeldung/finalkeyword/BlackDog.java b/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalkeyword/BlackDog.java
rename to core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java
diff --git a/core-java/src/main/java/com/baeldung/finalkeyword/Cat.java b/core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalkeyword/Cat.java
rename to core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java
diff --git a/core-java/src/main/java/com/baeldung/finalkeyword/Dog.java b/core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/finalkeyword/Dog.java
rename to core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java
diff --git a/core-java/src/main/java/com/baeldung/generics/Building.java b/core-java-lang/src/main/java/com/baeldung/generics/Building.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/generics/Building.java
rename to core-java-lang/src/main/java/com/baeldung/generics/Building.java
diff --git a/core-java/src/main/java/com/baeldung/generics/Generics.java b/core-java-lang/src/main/java/com/baeldung/generics/Generics.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/generics/Generics.java
rename to core-java-lang/src/main/java/com/baeldung/generics/Generics.java
diff --git a/core-java/src/main/java/com/baeldung/generics/House.java b/core-java-lang/src/main/java/com/baeldung/generics/House.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/generics/House.java
rename to core-java-lang/src/main/java/com/baeldung/generics/House.java
diff --git a/core-java/src/main/java/com/baeldung/hashcode/entities/User.java b/core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/hashcode/entities/User.java
rename to core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java
diff --git a/core-java/src/main/java/com/baeldung/immutableobjects/Currency.java b/core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/immutableobjects/Currency.java
rename to core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java
diff --git a/core-java/src/main/java/com/baeldung/immutableobjects/Money.java b/core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/immutableobjects/Money.java
rename to core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/ArmoredCar.java b/core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/ArmoredCar.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/BMW.java b/core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/BMW.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/Car.java b/core-java-lang/src/main/java/com/baeldung/inheritance/Car.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/Car.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/Car.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/Employee.java b/core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/Employee.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/Floatable.java b/core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/Floatable.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/Flyable.java b/core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/Flyable.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/SpaceCar.java b/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/SpaceCar.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java
diff --git a/core-java/src/main/java/com/baeldung/inheritance/SpaceTraveller.java b/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
rename to core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/application/Application.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Person.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
diff --git a/core-java/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java b/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
rename to core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
diff --git a/core-java/src/main/java/com/baeldung/initializationguide/User.java b/core-java-lang/src/main/java/com/baeldung/initializationguide/User.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/initializationguide/User.java
rename to core-java-lang/src/main/java/com/baeldung/initializationguide/User.java
diff --git a/core-java/src/main/java/com/baeldung/interfaces/CommaSeparatedCustomers.java b/core-java-lang/src/main/java/com/baeldung/interfaces/CommaSeparatedCustomers.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/interfaces/CommaSeparatedCustomers.java
rename to core-java-lang/src/main/java/com/baeldung/interfaces/CommaSeparatedCustomers.java
diff --git a/core-java/src/main/java/com/baeldung/interfaces/Customer.java b/core-java-lang/src/main/java/com/baeldung/interfaces/Customer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/interfaces/Customer.java
rename to core-java-lang/src/main/java/com/baeldung/interfaces/Customer.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Animal.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Animal.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Animal.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Animal.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Bird.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Bird.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Bird.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Bird.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/DynamicGreeter.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/DynamicGreeter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/DynamicGreeter.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/DynamicGreeter.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Eating.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Eating.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Eating.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Eating.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Goat.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Goat.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Goat.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Goat.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Greeter.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Greeter.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Greeter.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Greeter.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/GreetingAnnotation.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/GreetingAnnotation.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/GreetingAnnotation.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/GreetingAnnotation.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Greetings.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Greetings.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Greetings.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Greetings.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Locomotion.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Locomotion.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Locomotion.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Locomotion.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Operations.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Operations.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Operations.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Operations.java
diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Person.java b/core-java-lang/src/main/java/com/baeldung/java/reflection/Person.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/reflection/Person.java
rename to core-java-lang/src/main/java/com/baeldung/java/reflection/Person.java
diff --git a/core-java/src/main/java/com/baeldung/keyword/KeywordDemo.java b/core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keyword/KeywordDemo.java
rename to core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java
diff --git a/core-java/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java b/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
rename to core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
diff --git a/core-java/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java b/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
rename to core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
diff --git a/core-java/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java b/core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
rename to core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
diff --git a/core-java/src/main/java/com/baeldung/keywords/finalize/FinalizeObject.java b/core-java-lang/src/main/java/com/baeldung/keywords/finalize/FinalizeObject.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keywords/finalize/FinalizeObject.java
rename to core-java-lang/src/main/java/com/baeldung/keywords/finalize/FinalizeObject.java
diff --git a/core-java/src/main/java/com/baeldung/keywords/finalkeyword/Child.java b/core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/Child.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keywords/finalkeyword/Child.java
rename to core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/Child.java
diff --git a/core-java/src/main/java/com/baeldung/keywords/finalkeyword/GrandChild.java b/core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/GrandChild.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keywords/finalkeyword/GrandChild.java
rename to core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/GrandChild.java
diff --git a/core-java/src/main/java/com/baeldung/keywords/finalkeyword/Parent.java b/core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/Parent.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keywords/finalkeyword/Parent.java
rename to core-java-lang/src/main/java/com/baeldung/keywords/finalkeyword/Parent.java
diff --git a/core-java/src/main/java/com/baeldung/keywords/finallykeyword/FinallyExample.java b/core-java-lang/src/main/java/com/baeldung/keywords/finallykeyword/FinallyExample.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/keywords/finallykeyword/FinallyExample.java
rename to core-java-lang/src/main/java/com/baeldung/keywords/finallykeyword/FinallyExample.java
diff --git a/core-java/src/main/java/com/baeldung/loops/InfiniteLoops.java b/core-java-lang/src/main/java/com/baeldung/loops/InfiniteLoops.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/loops/InfiniteLoops.java
rename to core-java-lang/src/main/java/com/baeldung/loops/InfiniteLoops.java
diff --git a/core-java/src/main/java/com/baeldung/loops/LoopsInJava.java b/core-java-lang/src/main/java/com/baeldung/loops/LoopsInJava.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/loops/LoopsInJava.java
rename to core-java-lang/src/main/java/com/baeldung/loops/LoopsInJava.java
diff --git a/core-java/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java b/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
rename to core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
diff --git a/core-java/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java b/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
rename to core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
diff --git a/core-java/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java b/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
rename to core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
diff --git a/core-java/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java b/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
rename to core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
diff --git a/core-java/src/main/java/com/baeldung/noclassdeffounderror/ClassWithInitErrors.java b/core-java-lang/src/main/java/com/baeldung/noclassdeffounderror/ClassWithInitErrors.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/noclassdeffounderror/ClassWithInitErrors.java
rename to core-java-lang/src/main/java/com/baeldung/noclassdeffounderror/ClassWithInitErrors.java
diff --git a/core-java/src/main/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorExample.java b/core-java-lang/src/main/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorExample.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorExample.java
rename to core-java-lang/src/main/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorExample.java
diff --git a/core-java/src/main/java/com/baeldung/parameterpassing/NonPrimitives.java b/core-java-lang/src/main/java/com/baeldung/parameterpassing/NonPrimitives.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/parameterpassing/NonPrimitives.java
rename to core-java-lang/src/main/java/com/baeldung/parameterpassing/NonPrimitives.java
diff --git a/core-java/src/main/java/com/baeldung/parameterpassing/Primitives.java b/core-java-lang/src/main/java/com/baeldung/parameterpassing/Primitives.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/parameterpassing/Primitives.java
rename to core-java-lang/src/main/java/com/baeldung/parameterpassing/Primitives.java
diff --git a/core-java/src/main/java/com/baeldung/polymorphism/FileManager.java b/core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/polymorphism/FileManager.java
rename to core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java
diff --git a/core-java/src/main/java/com/baeldung/polymorphism/GenericFile.java b/core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/polymorphism/GenericFile.java
rename to core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java
diff --git a/core-java/src/main/java/com/baeldung/polymorphism/ImageFile.java b/core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/polymorphism/ImageFile.java
rename to core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java
diff --git a/core-java/src/main/java/com/baeldung/polymorphism/TextFile.java b/core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/polymorphism/TextFile.java
rename to core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java
diff --git a/core-java/src/main/java/com/baeldung/recursion/BinaryNode.java b/core-java-lang/src/main/java/com/baeldung/recursion/BinaryNode.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/recursion/BinaryNode.java
rename to core-java-lang/src/main/java/com/baeldung/recursion/BinaryNode.java
diff --git a/core-java/src/main/java/com/baeldung/recursion/RecursionExample.java b/core-java-lang/src/main/java/com/baeldung/recursion/RecursionExample.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/recursion/RecursionExample.java
rename to core-java-lang/src/main/java/com/baeldung/recursion/RecursionExample.java
diff --git a/core-java/src/main/java/com/baeldung/scope/method/BaseMethodClass.java b/core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
rename to core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
diff --git a/core-java/src/main/java/com/baeldung/scope/method/ChildMethodClass.java b/core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
rename to core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
diff --git a/core-java/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java b/core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
rename to core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
diff --git a/core-java/src/main/java/com/baeldung/scope/variable/ChildVariable.java b/core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/variable/ChildVariable.java
rename to core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java
diff --git a/core-java/src/main/java/com/baeldung/scope/variable/HideVariable.java b/core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/variable/HideVariable.java
rename to core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java
diff --git a/core-java/src/main/java/com/baeldung/scope/variable/ParentVariable.java b/core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/variable/ParentVariable.java
rename to core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java
diff --git a/core-java/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java b/core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
rename to core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
diff --git a/core-java/src/main/java/com/baeldung/sneakythrows/SneakyRunnable.java b/core-java-lang/src/main/java/com/baeldung/sneakythrows/SneakyRunnable.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/sneakythrows/SneakyRunnable.java
rename to core-java-lang/src/main/java/com/baeldung/sneakythrows/SneakyRunnable.java
diff --git a/core-java/src/main/java/com/baeldung/sneakythrows/SneakyThrows.java b/core-java-lang/src/main/java/com/baeldung/sneakythrows/SneakyThrows.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/sneakythrows/SneakyThrows.java
rename to core-java-lang/src/main/java/com/baeldung/sneakythrows/SneakyThrows.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/AccountHolder.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/AccountHolder.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/AccountHolder.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/AccountHolder.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/ClassOne.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/ClassOne.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/ClassOne.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/ClassOne.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/ClassTwo.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/ClassTwo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/ClassTwo.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/ClassTwo.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationCondition.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationCondition.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationCondition.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationCondition.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationCondition.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationCondition.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationCondition.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationCondition.java
diff --git a/core-java/src/main/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursion.java b/core-java-lang/src/main/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursion.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursion.java
rename to core-java-lang/src/main/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursion.java
diff --git a/core-java/src/main/java/com/baeldung/staticdemo/Car.java b/core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/staticdemo/Car.java
rename to core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java
diff --git a/core-java/src/main/java/com/baeldung/staticdemo/Singleton.java b/core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/staticdemo/Singleton.java
rename to core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java
diff --git a/core-java/src/main/java/com/baeldung/staticdemo/StaticBlock.java b/core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/staticdemo/StaticBlock.java
rename to core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java
diff --git a/core-java/src/main/java/com/baeldung/switchstatement/SwitchStatement.java b/core-java-lang/src/main/java/com/baeldung/switchstatement/SwitchStatement.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/switchstatement/SwitchStatement.java
rename to core-java-lang/src/main/java/com/baeldung/switchstatement/SwitchStatement.java
diff --git a/core-java/src/main/java/com/baeldung/synthetic/BridgeMethodDemo.java b/core-java-lang/src/main/java/com/baeldung/synthetic/BridgeMethodDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/synthetic/BridgeMethodDemo.java
rename to core-java-lang/src/main/java/com/baeldung/synthetic/BridgeMethodDemo.java
diff --git a/core-java/src/main/java/com/baeldung/synthetic/SyntheticConstructorDemo.java b/core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticConstructorDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/synthetic/SyntheticConstructorDemo.java
rename to core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticConstructorDemo.java
diff --git a/core-java/src/main/java/com/baeldung/synthetic/SyntheticFieldDemo.java b/core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticFieldDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/synthetic/SyntheticFieldDemo.java
rename to core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticFieldDemo.java
diff --git a/core-java/src/main/java/com/baeldung/synthetic/SyntheticMethodDemo.java b/core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticMethodDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/synthetic/SyntheticMethodDemo.java
rename to core-java-lang/src/main/java/com/baeldung/synthetic/SyntheticMethodDemo.java
diff --git a/core-java/src/main/java/com/baeldung/system/ChatWindow.java b/core-java-lang/src/main/java/com/baeldung/system/ChatWindow.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/ChatWindow.java
rename to core-java-lang/src/main/java/com/baeldung/system/ChatWindow.java
diff --git a/core-java/src/main/java/com/baeldung/system/DateTimeService.java b/core-java-lang/src/main/java/com/baeldung/system/DateTimeService.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/DateTimeService.java
rename to core-java-lang/src/main/java/com/baeldung/system/DateTimeService.java
diff --git a/core-java/src/main/java/com/baeldung/system/EnvironmentVariables.java b/core-java-lang/src/main/java/com/baeldung/system/EnvironmentVariables.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/EnvironmentVariables.java
rename to core-java-lang/src/main/java/com/baeldung/system/EnvironmentVariables.java
diff --git a/core-java/src/main/java/com/baeldung/system/SystemErrDemo.java b/core-java-lang/src/main/java/com/baeldung/system/SystemErrDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/SystemErrDemo.java
rename to core-java-lang/src/main/java/com/baeldung/system/SystemErrDemo.java
diff --git a/core-java/src/main/java/com/baeldung/system/SystemExitDemo.java b/core-java-lang/src/main/java/com/baeldung/system/SystemExitDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/SystemExitDemo.java
rename to core-java-lang/src/main/java/com/baeldung/system/SystemExitDemo.java
diff --git a/core-java/src/main/java/com/baeldung/system/SystemOutDemo.java b/core-java-lang/src/main/java/com/baeldung/system/SystemOutDemo.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/SystemOutDemo.java
rename to core-java-lang/src/main/java/com/baeldung/system/SystemOutDemo.java
diff --git a/core-java/src/main/java/com/baeldung/system/UserCredentials.java b/core-java-lang/src/main/java/com/baeldung/system/UserCredentials.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/system/UserCredentials.java
rename to core-java-lang/src/main/java/com/baeldung/system/UserCredentials.java
diff --git a/core-java/src/main/java/com/baeldung/throwsexception/DataAccessException.java b/core-java-lang/src/main/java/com/baeldung/throwsexception/DataAccessException.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/throwsexception/DataAccessException.java
rename to core-java-lang/src/main/java/com/baeldung/throwsexception/DataAccessException.java
diff --git a/core-java/src/main/java/com/baeldung/throwsexception/Main.java b/core-java-lang/src/main/java/com/baeldung/throwsexception/Main.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/throwsexception/Main.java
rename to core-java-lang/src/main/java/com/baeldung/throwsexception/Main.java
diff --git a/core-java/src/main/java/com/baeldung/throwsexception/PersonRepository.java b/core-java-lang/src/main/java/com/baeldung/throwsexception/PersonRepository.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/throwsexception/PersonRepository.java
rename to core-java-lang/src/main/java/com/baeldung/throwsexception/PersonRepository.java
diff --git a/core-java/src/main/java/com/baeldung/throwsexception/SimpleService.java b/core-java-lang/src/main/java/com/baeldung/throwsexception/SimpleService.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/throwsexception/SimpleService.java
rename to core-java-lang/src/main/java/com/baeldung/throwsexception/SimpleService.java
diff --git a/core-java/src/main/java/com/baeldung/throwsexception/TryCatch.java b/core-java-lang/src/main/java/com/baeldung/throwsexception/TryCatch.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/throwsexception/TryCatch.java
rename to core-java-lang/src/main/java/com/baeldung/throwsexception/TryCatch.java
diff --git a/core-java/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java b/core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
rename to core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
diff --git a/core-java/src/main/java/com/baeldung/typeerasure/BoundStack.java b/core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/typeerasure/BoundStack.java
rename to core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java
diff --git a/core-java/src/main/java/com/baeldung/typeerasure/IntegerStack.java b/core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/typeerasure/IntegerStack.java
rename to core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java
diff --git a/core-java/src/main/java/com/baeldung/typeerasure/Stack.java b/core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/typeerasure/Stack.java
rename to core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java
diff --git a/core-java/src/main/resources/file.txt b/core-java-lang/src/main/resources/file.txt
similarity index 100%
rename from core-java/src/main/resources/file.txt
rename to core-java-lang/src/main/resources/file.txt
diff --git a/core-java/src/test/java/com/baeldung/binding/AnimalActivityUnitTest.java b/core-java-lang/src/test/java/com/baeldung/binding/AnimalActivityUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/binding/AnimalActivityUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/binding/AnimalActivityUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/binding/AnimalUnitTest.java b/core-java-lang/src/test/java/com/baeldung/binding/AnimalUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/binding/AnimalUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/binding/AnimalUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/binding/CatUnitTest.java b/core-java-lang/src/test/java/com/baeldung/binding/CatUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/binding/CatUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/binding/CatUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/breakcontinue/BreakContinueUnitTest.java b/core-java-lang/src/test/java/com/baeldung/breakcontinue/BreakContinueUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/breakcontinue/BreakContinueUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/breakcontinue/BreakContinueUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/casting/CastingUnitTest.java b/core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/casting/CastingUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/classnotfoundexception/ClassNotFoundExceptionUnitTest.java b/core-java-lang/src/test/java/com/baeldung/classnotfoundexception/ClassNotFoundExceptionUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/classnotfoundexception/ClassNotFoundExceptionUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/classnotfoundexception/ClassNotFoundExceptionUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/comparable/ComparableUnitTest.java b/core-java-lang/src/test/java/com/baeldung/comparable/ComparableUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/comparable/ComparableUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/comparable/ComparableUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/comparator/ComparatorUnitTest.java b/core-java-lang/src/test/java/com/baeldung/comparator/ComparatorUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/comparator/ComparatorUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/comparator/ComparatorUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java b/core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/comparator/Java8ComparatorUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/customexception/IncorrectFileExtensionExceptionUnitTest.java b/core-java-lang/src/test/java/com/baeldung/customexception/IncorrectFileExtensionExceptionUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/customexception/IncorrectFileExtensionExceptionUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/customexception/IncorrectFileExtensionExceptionUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/customexception/IncorrectFileNameExceptionUnitTest.java b/core-java-lang/src/test/java/com/baeldung/customexception/IncorrectFileNameExceptionUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/customexception/IncorrectFileNameExceptionUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/customexception/IncorrectFileNameExceptionUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java b/core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
similarity index 98%
rename from core-java/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
index 196b69fbf7..d6b1cd90b9 100644
--- a/core-java/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
@@ -4,7 +4,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
-import org.apache.commons.lang.SerializationUtils;
+import org.apache.commons.lang3.SerializationUtils;
import org.junit.Ignore;
import org.junit.Test;
diff --git a/core-java/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java b/core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/dynamicproxy/DynamicProxyIntegrationTest.java b/core-java-lang/src/test/java/com/baeldung/dynamicproxy/DynamicProxyIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/dynamicproxy/DynamicProxyIntegrationTest.java
rename to core-java-lang/src/test/java/com/baeldung/dynamicproxy/DynamicProxyIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/enums/PizzaUnitTest.java b/core-java-lang/src/test/java/com/baeldung/enums/PizzaUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/enums/PizzaUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/enums/PizzaUnitTest.java
diff --git a/core-java/src/test/java/org/baeldung/equalshashcode/entities/ComplexClassUnitTest.java b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
similarity index 95%
rename from core-java/src/test/java/org/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
index 680a6d57b5..0cb4ace0ab 100644
--- a/core-java/src/test/java/org/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.equalshashcode.entities;
+package com.baeldung.equalshashcode.entities;
import java.util.ArrayList;
import java.util.HashSet;
diff --git a/core-java/src/test/java/org/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
similarity index 85%
rename from core-java/src/test/java/org/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
index f4e9f2b99f..457d7a2b5e 100644
--- a/core-java/src/test/java/org/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
@@ -1,10 +1,8 @@
-package org.baeldung.equalshashcode.entities;
+package com.baeldung.equalshashcode.entities;
import org.junit.Assert;
import org.junit.Test;
-import com.baeldung.equalshashcode.entities.PrimitiveClass;
-
public class PrimitiveClassUnitTest {
@Test
diff --git a/core-java/src/test/java/org/baeldung/equalshashcode/entities/SquareClassUnitTest.java b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
similarity index 93%
rename from core-java/src/test/java/org/baeldung/equalshashcode/entities/SquareClassUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
index 5c860bd62d..a25e8bd486 100644
--- a/core-java/src/test/java/org/baeldung/equalshashcode/entities/SquareClassUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.equalshashcode.entities;
+package com.baeldung.equalshashcode.entities;
import java.awt.Color;
diff --git a/core-java/src/test/java/com/baeldung/exceptionhandling/ExceptionsUnitTest.java b/core-java-lang/src/test/java/com/baeldung/exceptionhandling/ExceptionsUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/exceptionhandling/ExceptionsUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/exceptionhandling/ExceptionsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/finalize/FinalizeUnitTest.java b/core-java-lang/src/test/java/com/baeldung/finalize/FinalizeUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/finalize/FinalizeUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/finalize/FinalizeUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java b/core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/generics/GenericsUnitTest.java b/core-java-lang/src/test/java/com/baeldung/generics/GenericsUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/generics/GenericsUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/generics/GenericsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java b/core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java b/core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java b/core-java-lang/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/immutableobjects/ImmutableObjectsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritance/AppUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritance/AppUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java b/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/initializationguide/UserUnitTest.java b/core-java-lang/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/interfaces/InnerInterfaceUnitTest.java b/core-java-lang/src/test/java/com/baeldung/interfaces/InnerInterfaceUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/interfaces/InnerInterfaceUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/interfaces/InnerInterfaceUnitTest.java
diff --git a/core-java/src/test/java/org/baeldung/java/diamond/Car.java b/core-java-lang/src/test/java/com/baeldung/java/diamond/Car.java
similarity index 64%
rename from core-java/src/test/java/org/baeldung/java/diamond/Car.java
rename to core-java-lang/src/test/java/com/baeldung/java/diamond/Car.java
index 9f923e0f3b..a680c4e670 100644
--- a/core-java/src/test/java/org/baeldung/java/diamond/Car.java
+++ b/core-java-lang/src/test/java/com/baeldung/java/diamond/Car.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.diamond;
+package com.baeldung.java.diamond;
public class Car implements Vehicle {
diff --git a/core-java/src/test/java/org/baeldung/java/diamond/DiamondOperatorUnitTest.java b/core-java-lang/src/test/java/com/baeldung/java/diamond/DiamondOperatorUnitTest.java
similarity index 88%
rename from core-java/src/test/java/org/baeldung/java/diamond/DiamondOperatorUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/java/diamond/DiamondOperatorUnitTest.java
index f6c7f7162f..ee5f639926 100644
--- a/core-java/src/test/java/org/baeldung/java/diamond/DiamondOperatorUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/java/diamond/DiamondOperatorUnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.diamond;
+package com.baeldung.java.diamond;
import static org.junit.Assert.assertNotNull;
diff --git a/core-java/src/test/java/org/baeldung/java/diamond/Diesel.java b/core-java-lang/src/test/java/com/baeldung/java/diamond/Diesel.java
similarity index 78%
rename from core-java/src/test/java/org/baeldung/java/diamond/Diesel.java
rename to core-java-lang/src/test/java/com/baeldung/java/diamond/Diesel.java
index dc4256cdae..90eb7d9340 100644
--- a/core-java/src/test/java/org/baeldung/java/diamond/Diesel.java
+++ b/core-java-lang/src/test/java/com/baeldung/java/diamond/Diesel.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.diamond;
+package com.baeldung.java.diamond;
public class Diesel implements Engine {
diff --git a/core-java/src/test/java/org/baeldung/java/diamond/Engine.java b/core-java-lang/src/test/java/com/baeldung/java/diamond/Engine.java
similarity index 56%
rename from core-java/src/test/java/org/baeldung/java/diamond/Engine.java
rename to core-java-lang/src/test/java/com/baeldung/java/diamond/Engine.java
index c18a8f64b5..746baf3254 100644
--- a/core-java/src/test/java/org/baeldung/java/diamond/Engine.java
+++ b/core-java-lang/src/test/java/com/baeldung/java/diamond/Engine.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.diamond;
+package com.baeldung.java.diamond;
public interface Engine {
diff --git a/core-java/src/test/java/org/baeldung/java/diamond/Vehicle.java b/core-java-lang/src/test/java/com/baeldung/java/diamond/Vehicle.java
similarity index 58%
rename from core-java/src/test/java/org/baeldung/java/diamond/Vehicle.java
rename to core-java-lang/src/test/java/com/baeldung/java/diamond/Vehicle.java
index f61cf59620..8395cdd970 100644
--- a/core-java/src/test/java/org/baeldung/java/diamond/Vehicle.java
+++ b/core-java-lang/src/test/java/com/baeldung/java/diamond/Vehicle.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.diamond;
+package com.baeldung.java.diamond;
public interface Vehicle {
diff --git a/core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceUnitTest.java b/core-java-lang/src/test/java/com/baeldung/java/doublebrace/DoubleBraceUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/java/doublebrace/DoubleBraceUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/java/doublebrace/DoubleBraceUnitTest.java
diff --git a/core-java/src/main/java/com/baeldung/java/enumiteration/DaysOfWeekEnum.java b/core-java-lang/src/test/java/com/baeldung/java/enumiteration/DaysOfWeekEnum.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/enumiteration/DaysOfWeekEnum.java
rename to core-java-lang/src/test/java/com/baeldung/java/enumiteration/DaysOfWeekEnum.java
diff --git a/core-java/src/main/java/com/baeldung/java/enumiteration/EnumIterationExamples.java b/core-java-lang/src/test/java/com/baeldung/java/enumiteration/EnumIterationExamples.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/java/enumiteration/EnumIterationExamples.java
rename to core-java-lang/src/test/java/com/baeldung/java/enumiteration/EnumIterationExamples.java
diff --git a/core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java b/core-java-lang/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/java/reflection/ReflectionUnitTest.java b/core-java-lang/src/test/java/com/baeldung/java/reflection/ReflectionUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/java/reflection/ReflectionUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/java/reflection/ReflectionUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/loops/WhenUsingLoops.java b/core-java-lang/src/test/java/com/baeldung/loops/WhenUsingLoops.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/loops/WhenUsingLoops.java
rename to core-java-lang/src/test/java/com/baeldung/loops/WhenUsingLoops.java
diff --git a/core-java/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java b/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java b/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/modulo/ModuloUnitTest.java b/core-java-lang/src/test/java/com/baeldung/modulo/ModuloUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/modulo/ModuloUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/modulo/ModuloUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/nestedclass/AnonymousInner.java b/core-java-lang/src/test/java/com/baeldung/nestedclass/AnonymousInner.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/nestedclass/AnonymousInner.java
rename to core-java-lang/src/test/java/com/baeldung/nestedclass/AnonymousInner.java
diff --git a/core-java/src/test/java/com/baeldung/nestedclass/Enclosing.java b/core-java-lang/src/test/java/com/baeldung/nestedclass/Enclosing.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/nestedclass/Enclosing.java
rename to core-java-lang/src/test/java/com/baeldung/nestedclass/Enclosing.java
diff --git a/core-java/src/test/java/com/baeldung/nestedclass/NewEnclosing.java b/core-java-lang/src/test/java/com/baeldung/nestedclass/NewEnclosing.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/nestedclass/NewEnclosing.java
rename to core-java-lang/src/test/java/com/baeldung/nestedclass/NewEnclosing.java
diff --git a/core-java/src/test/java/com/baeldung/nestedclass/NewOuter.java b/core-java-lang/src/test/java/com/baeldung/nestedclass/NewOuter.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/nestedclass/NewOuter.java
rename to core-java-lang/src/test/java/com/baeldung/nestedclass/NewOuter.java
diff --git a/core-java/src/test/java/com/baeldung/nestedclass/Outer.java b/core-java-lang/src/test/java/com/baeldung/nestedclass/Outer.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/nestedclass/Outer.java
rename to core-java-lang/src/test/java/com/baeldung/nestedclass/Outer.java
diff --git a/core-java/src/test/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorUnitTest.java b/core-java-lang/src/test/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/noclassdeffounderror/NoClassDefFoundErrorUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java b/core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java b/core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java b/core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/PrimitiveConversionsJUnitTest.java b/core-java-lang/src/test/java/com/baeldung/primitiveconversion/PrimitiveConversionsJUnitTest.java
similarity index 99%
rename from core-java/src/test/java/com/baeldung/PrimitiveConversionsJUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/primitiveconversion/PrimitiveConversionsJUnitTest.java
index 69a6c18dfd..cb83f4a5ed 100644
--- a/core-java/src/test/java/com/baeldung/PrimitiveConversionsJUnitTest.java
+++ b/core-java-lang/src/test/java/com/baeldung/primitiveconversion/PrimitiveConversionsJUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung;
+package com.baeldung.primitiveconversion;
import org.junit.Test;
import org.slf4j.Logger;
diff --git a/core-java/src/test/java/com/baeldung/recursion/RecursionExampleUnitTest.java b/core-java-lang/src/test/java/com/baeldung/recursion/RecursionExampleUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/recursion/RecursionExampleUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/recursion/RecursionExampleUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/sneakythrows/SneakyRunnableUnitTest.java b/core-java-lang/src/test/java/com/baeldung/sneakythrows/SneakyRunnableUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/sneakythrows/SneakyRunnableUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/sneakythrows/SneakyRunnableUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/sneakythrows/SneakyThrowsUnitTest.java b/core-java-lang/src/test/java/com/baeldung/sneakythrows/SneakyThrowsUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/sneakythrows/SneakyThrowsUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/sneakythrows/SneakyThrowsUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/stackoverflowerror/AccountHolderManualTest.java b/core-java-lang/src/test/java/com/baeldung/stackoverflowerror/AccountHolderManualTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/stackoverflowerror/AccountHolderManualTest.java
rename to core-java-lang/src/test/java/com/baeldung/stackoverflowerror/AccountHolderManualTest.java
diff --git a/core-java/src/test/java/com/baeldung/stackoverflowerror/CyclicDependancyManualTest.java b/core-java-lang/src/test/java/com/baeldung/stackoverflowerror/CyclicDependancyManualTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/stackoverflowerror/CyclicDependancyManualTest.java
rename to core-java-lang/src/test/java/com/baeldung/stackoverflowerror/CyclicDependancyManualTest.java
diff --git a/core-java/src/test/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationConditionManualTest.java b/core-java-lang/src/test/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationConditionManualTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationConditionManualTest.java
rename to core-java-lang/src/test/java/com/baeldung/stackoverflowerror/InfiniteRecursionWithTerminationConditionManualTest.java
diff --git a/core-java/src/test/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationConditionManualTest.java b/core-java-lang/src/test/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationConditionManualTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationConditionManualTest.java
rename to core-java-lang/src/test/java/com/baeldung/stackoverflowerror/RecursionWithCorrectTerminationConditionManualTest.java
diff --git a/core-java/src/test/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursionManualTest.java b/core-java-lang/src/test/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursionManualTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursionManualTest.java
rename to core-java-lang/src/test/java/com/baeldung/stackoverflowerror/UnintendedInfiniteRecursionManualTest.java
diff --git a/core-java/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java b/core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
rename to core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java b/core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
rename to core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java b/core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
rename to core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/switchstatement/SwitchStatementUnitTest.java b/core-java-lang/src/test/java/com/baeldung/switchstatement/SwitchStatementUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/switchstatement/SwitchStatementUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/switchstatement/SwitchStatementUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/synthetic/SyntheticUnitTest.java b/core-java-lang/src/test/java/com/baeldung/synthetic/SyntheticUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/synthetic/SyntheticUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/synthetic/SyntheticUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/system/DateTimeServiceUnitTest.java b/core-java-lang/src/test/java/com/baeldung/system/DateTimeServiceUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/system/DateTimeServiceUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/system/DateTimeServiceUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/system/EnvironmentVariablesUnitTest.java b/core-java-lang/src/test/java/com/baeldung/system/EnvironmentVariablesUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/system/EnvironmentVariablesUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/system/EnvironmentVariablesUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/system/SystemArrayCopyUnitTest.java b/core-java-lang/src/test/java/com/baeldung/system/SystemArrayCopyUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/system/SystemArrayCopyUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/system/SystemArrayCopyUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/system/SystemNanoUnitTest.java b/core-java-lang/src/test/java/com/baeldung/system/SystemNanoUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/system/SystemNanoUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/system/SystemNanoUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/system/SystemPropertiesUnitTest.java b/core-java-lang/src/test/java/com/baeldung/system/SystemPropertiesUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/system/SystemPropertiesUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/system/SystemPropertiesUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/ternaryoperator/TernaryOperatorUnitTest.java b/core-java-lang/src/test/java/com/baeldung/ternaryoperator/TernaryOperatorUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/ternaryoperator/TernaryOperatorUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/ternaryoperator/TernaryOperatorUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/throwsexception/SimpleServiceUnitTest.java b/core-java-lang/src/test/java/com/baeldung/throwsexception/SimpleServiceUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/throwsexception/SimpleServiceUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/throwsexception/SimpleServiceUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java b/core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/varargs/FormatterUnitTest.java b/core-java-lang/src/test/java/com/baeldung/varargs/FormatterUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/varargs/FormatterUnitTest.java
rename to core-java-lang/src/test/java/com/baeldung/varargs/FormatterUnitTest.java
diff --git a/core-java/src/test/resources/correctFileNameWithoutProperExtension b/core-java-lang/src/test/resources/correctFileNameWithoutProperExtension
similarity index 100%
rename from core-java/src/test/resources/correctFileNameWithoutProperExtension
rename to core-java-lang/src/test/resources/correctFileNameWithoutProperExtension
diff --git a/core-java/README.md b/core-java/README.md
index 10fbdb87a7..2be137add6 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -6,101 +6,56 @@
- [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)
-- [Guide to Java Reflection](http://www.baeldung.com/java-reflection)
- [A Guide to Java Sockets](http://www.baeldung.com/a-guide-to-java-sockets)
-- [Java – Try with Resources](http://www.baeldung.com/java-try-with-resources)
- [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)
-- [Introduction to Java Generics](http://www.baeldung.com/java-generics)
-- [Generate equals() and hashCode() with Eclipse](http://www.baeldung.com/java-eclipse-equals-and-hashcode)
- [A Guide To Java Regular Expressions API](http://www.baeldung.com/regular-expressions-java)
- [Sorting in Java](http://www.baeldung.com/java-sorting)
- [Getting Started with Java Properties](http://www.baeldung.com/java-properties)
-- [Grep in Java](http://www.baeldung.com/grep-in-java)
- [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)
-- [The Basics of Java Generics](http://www.baeldung.com/java-generics)
- [How to Create an Executable JAR with Maven](http://www.baeldung.com/executable-jar-with-maven)
- [How to Design a Genetic Algorithm in Java](http://www.baeldung.com/java-genetic-algorithm)
- [Basic Introduction to JMX](http://www.baeldung.com/java-management-extensions)
- [AWS Lambda With Java](http://www.baeldung.com/java-aws-lambda)
- [Introduction to Nashorn](http://www.baeldung.com/java-nashorn)
-- [Chained Exceptions in Java](http://www.baeldung.com/java-chained-exceptions)
-- [Java Primitive Conversions](http://www.baeldung.com/java-primitive-conversions)
- [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)
-- [Call Methods at Runtime Using Java Reflection](http://www.baeldung.com/java-method-reflection)
- [How to Add a Single Element to a Stream](http://www.baeldung.com/java-stream-append-prepend)
-- [Iterating Over Enum Values in Java](http://www.baeldung.com/java-enum-iteration)
- [Kotlin Java Interoperability](http://www.baeldung.com/kotlin-java-interoperability)
-- [Changing Annotation Parameters At Runtime](http://www.baeldung.com/java-reflection-change-annotation-params)
- [How to Find all Getters Returning Null](http://www.baeldung.com/java-getters-returning-null)
-- [Changing the Order in a Sum Operation Can Produce Different Results?](http://www.baeldung.com/java-floating-point-sum-order)
- [How to Get a Name of a Method Being Executed?](http://www.baeldung.com/java-name-of-executing-method)
-- [Dynamic Proxies in Java](http://www.baeldung.com/java-dynamic-proxies)
-- [How to Copy an Array in Java](http://www.baeldung.com/java-array-copy)
- [Converting a Stack Trace to a String in Java](http://www.baeldung.com/java-stacktrace-to-string)
-- [Java Double Brace Initialization](http://www.baeldung.com/java-double-brace-initialization)
-- [The StackOverflowError in Java](http://www.baeldung.com/java-stack-overflow-error)
- [Introduction to Java Serialization](http://www.baeldung.com/java-serialization)
-- [ClassNotFoundException vs NoClassDefFoundError](http://www.baeldung.com/java-classnotfoundexception-and-noclassdeffounderror)
- [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)
-- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
- [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)
- [Period and Duration in Java](http://www.baeldung.com/java-period-duration)
-- [Guide to the Diamond Operator in Java](http://www.baeldung.com/java-diamond-operator)
-- [“Sneaky Throws” in Java](http://www.baeldung.com/java-sneaky-throws)
- [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)
-- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
-- [Initializing Arrays in Java](http://www.baeldung.com/java-initialize-array)
-- [Quick Example - Comparator vs Comparable in Java](http://www.baeldung.com/java-comparator-comparable)
- [Quick Guide to Java Stack](http://www.baeldung.com/java-stack)
-- [The Java continue and break Keywords](http://www.baeldung.com/java-continue-and-break)
- [Guide to java.util.Formatter](http://www.baeldung.com/java-string-formatter)
-- [Check if a Java Array Contains a Value](http://www.baeldung.com/java-array-contains-value)
-- [How to Invert an Array in Java](http://www.baeldung.com/java-invert-array)
- [Guide to the Cipher Class](http://www.baeldung.com/java-cipher-class)
-- [A Guide to Java Initialization](http://www.baeldung.com/java-initialization)
- [Implementing a Binary Tree in Java](http://www.baeldung.com/java-binary-tree)
- [A Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
-- [Nested Classes in Java](http://www.baeldung.com/java-nested-classes)
-- [A Guide to Java Loops](http://www.baeldung.com/java-loops)
-- [Varargs in Java](http://www.baeldung.com/java-varargs)
-- [A Guide to Inner Interfaces in Java](http://www.baeldung.com/java-inner-interfaces)
-- [Polymorphism in Java](http://www.baeldung.com/java-polymorphism)
-- [Recursion In Java](http://www.baeldung.com/java-recursion)
-- [A Guide to the finalize Method in Java](http://www.baeldung.com/java-finalize)
- [Compiling Java *.class Files with javac](http://www.baeldung.com/javac)
-- [Method Overloading and Overriding in Java](http://www.baeldung.com/java-method-overload-override)
-- [Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
- [A Guide to Iterator in Java](http://www.baeldung.com/java-iterator)
- [The Trie Data Structure in Java](http://www.baeldung.com/trie-java)
- [Introduction to Javadoc](http://www.baeldung.com/javadoc)
-- [How to Make a Deep Copy of an Object in Java](http://www.baeldung.com/java-deep-copy)
-- [Guide to Inheritance in Java](http://www.baeldung.com/java-inheritance)
- [Guide to Externalizable Interface in Java](http://www.baeldung.com/java-externalizable)
-- [Object Type Casting in Java](http://www.baeldung.com/java-type-casting)
- [A Practical Guide to DecimalFormat](http://www.baeldung.com/java-decimalformat)
- [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)
-- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](http://www.baeldung.com/java-inheritance-composition)
- [Finding Max/Min of a List or Collection](http://www.baeldung.com/java-collection-min-max)
-- [The "final" Keyword in Java](http://www.baeldung.com/java-final)
- [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 Java LinkedList](http://www.baeldung.com/java-linkedlist)
-- [A Guide to Java Enums](http://www.baeldung.com/a-guide-to-java-enums)
- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle)
-- [Quick Guide to java.lang.System](http://www.baeldung.com/java-lang-system)
- [Class Loaders in Java](http://www.baeldung.com/java-classloaders)
-- [Find Sum and Average in a Java Array](http://www.baeldung.com/java-array-sum-average)
- [Java List UnsupportedOperationException](http://www.baeldung.com/java-list-unsupported-operation-exception)
-- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
- [Join and Split Arrays and Collections in Java](http://www.baeldung.com/java-join-and-split)
- [Check If Two Lists are Equal in Java](http://www.baeldung.com/java-test-a-list-for-ordinality-and-equality)
- [Sending Emails with Java](http://www.baeldung.com/java-email)
@@ -108,12 +63,6 @@
- [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)
-- [Infinite Loops in Java](http://www.baeldung.com/infinite-loops-java)
-- [Using Java Assertions](http://www.baeldung.com/java-assert)
-- [Pass-By-Value as a Parameter Passing Mechanism in Java](http://www.baeldung.com/java-pass-by-value-or-pass-by-reference)
-- [Variable and Method Hiding in Java](http://www.baeldung.com/java-variable-method-hiding)
-- [Access Modifiers in Java](http://www.baeldung.com/java-access-modifiers)
-- [Infinite Loops in Java](http://www.baeldung.com/infinite-loops-java)
- [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)
@@ -121,42 +70,26 @@
- [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)
-- [Guide to the super Java Keyword](http://www.baeldung.com/java-super)
-- [Guide to the this Java Keyword](http://www.baeldung.com/java-this)
-- [Jagged Arrays In Java](http://www.baeldung.com/java-jagged-arrays)
- [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)
-- [Immutable Objects in Java](http://www.baeldung.com/java-immutable-object)
- [Console I/O in Java](http://www.baeldung.com/java-console-input-output)
-- [Guide to the java.util.Arrays Class](http://www.baeldung.com/java-util-arrays)
-- [Create a Custom Exception in Java](http://www.baeldung.com/java-new-custom-exception)
- [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)
-- [Exception Handling in Java](http://www.baeldung.com/java-exceptions)
- [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)
-- [Differences Between Final, Finally and Finalize in Java](https://www.baeldung.com/java-final-finally-finalize)
-- [Static and Dynamic Binding in Java](https://www.baeldung.com/java-static-dynamic-binding)
- [Java List Initialization in One Line](https://www.baeldung.com/java-init-list-one-line)
-- [Difference Between Throw and Throws in Java](https://www.baeldung.com/java-throw-throws)
- [ClassCastException: Arrays$ArrayList cannot be cast to ArrayList](https://www.baeldung.com/java-classcastexception-arrays-arraylist)
- [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)
-- [Synthetic Constructs in Java](https://www.baeldung.com/java-synthetic)
- [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)
-- [How to Separate Double into Integer and Decimal Parts](https://www.baeldung.com/java-separate-double-into-integer-decimal-parts)
- [ZoneOffset in Java](https://www.baeldung.com/java-zone-offset)
- [Hashing a Password in Java](https://www.baeldung.com/java-password-hashing)
-- [Java Switch Statement](https://www.baeldung.com/java-switch)
-- [The Modulo Operator in Java](https://www.baeldung.com/modulo-java)
-- [Ternary Operator In Java](https://www.baeldung.com/java-ternary-operator)
- [Merging java.util.Properties Objects](https://www.baeldung.com/java-merging-properties)
- [Understanding Memory Leaks in Java](https://www.baeldung.com/java-memory-leaks)
-- [Arrays in Java: A Reference Guide](https://www.baeldung.com/java-arrays-guide)
- [A Guide to SimpleDateFormat](https://www.baeldung.com/java-simple-date-format)
- [SSL Handshake Failures](https://www.baeldung.com/java-ssl-handshake-failures)
diff --git a/core-java/pom.xml b/core-java/pom.xml
index 477a01375d..2106b45fab 100644
--- a/core-java/pom.xml
+++ b/core-java/pom.xml
@@ -157,7 +157,7 @@
com.sun
tools
- 1.8.0
+ ${sun.tools.version}
system
${java.home}/../lib/tools.jar
@@ -542,6 +542,8 @@
0.1.5
3.21.0-GA
+
+ 1.8.0
diff --git a/core-java/src/main/java/org/baeldung/equalshashcode/entities/ComplexClass.java b/core-java/src/main/java/org/baeldung/equalshashcode/entities/ComplexClass.java
deleted file mode 100644
index 6329f41252..0000000000
--- a/core-java/src/main/java/org/baeldung/equalshashcode/entities/ComplexClass.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.baeldung.equalshashcode.entities;
-
-import java.util.List;
-import java.util.Set;
-
-public class ComplexClass {
-
- private List> genericList;
- private Set integerSet;
-
- public ComplexClass(List> genericArrayList, Set integerHashSet) {
- super();
- this.genericList = genericArrayList;
- this.integerSet = integerHashSet;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((genericList == null) ? 0 : genericList.hashCode());
- result = prime * result + ((integerSet == null) ? 0 : integerSet.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof ComplexClass))
- return false;
- ComplexClass other = (ComplexClass) obj;
- if (genericList == null) {
- if (other.genericList != null)
- return false;
- } else if (!genericList.equals(other.genericList))
- return false;
- if (integerSet == null) {
- if (other.integerSet != null)
- return false;
- } else if (!integerSet.equals(other.integerSet))
- return false;
- return true;
- }
-
- protected List> getGenericList() {
- return genericList;
- }
-
- protected void setGenericArrayList(List> genericList) {
- this.genericList = genericList;
- }
-
- protected Set getIntegerSet() {
- return integerSet;
- }
-
- protected void setIntegerSet(Set integerSet) {
- this.integerSet = integerSet;
- }
-}
diff --git a/core-java/src/main/java/org/baeldung/equalshashcode/entities/PrimitiveClass.java b/core-java/src/main/java/org/baeldung/equalshashcode/entities/PrimitiveClass.java
deleted file mode 100644
index ebe005688c..0000000000
--- a/core-java/src/main/java/org/baeldung/equalshashcode/entities/PrimitiveClass.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.baeldung.equalshashcode.entities;
-
-public class PrimitiveClass {
-
- private boolean primitiveBoolean;
- private int primitiveInt;
-
- public PrimitiveClass(boolean primitiveBoolean, int primitiveInt) {
- super();
- this.primitiveBoolean = primitiveBoolean;
- this.primitiveInt = primitiveInt;
- }
-
- protected boolean isPrimitiveBoolean() {
- return primitiveBoolean;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (primitiveBoolean ? 1231 : 1237);
- result = prime * result + primitiveInt;
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- PrimitiveClass other = (PrimitiveClass) obj;
- if (primitiveBoolean != other.primitiveBoolean)
- return false;
- if (primitiveInt != other.primitiveInt)
- return false;
- return true;
- }
-
- protected void setPrimitiveBoolean(boolean primitiveBoolean) {
- this.primitiveBoolean = primitiveBoolean;
- }
-
- protected int getPrimitiveInt() {
- return primitiveInt;
- }
-
- protected void setPrimitiveInt(int primitiveInt) {
- this.primitiveInt = primitiveInt;
- }
-}
diff --git a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Rectangle.java b/core-java/src/main/java/org/baeldung/equalshashcode/entities/Rectangle.java
deleted file mode 100644
index 5e38eb6088..0000000000
--- a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Rectangle.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.baeldung.equalshashcode.entities;
-
-public class Rectangle extends Shape {
- private double width;
- private double length;
-
- Rectangle(double width, double length) {
- this.width = width;
- this.length = length;
- }
-
- @Override
- public double area() {
- return width * length;
- }
-
- @Override
- public double perimeter() {
- return 2 * (width + length);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- long temp;
- temp = Double.doubleToLongBits(length);
- result = prime * result + (int) (temp ^ (temp >>> 32));
- temp = Double.doubleToLongBits(width);
- result = prime * result + (int) (temp ^ (temp >>> 32));
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Rectangle other = (Rectangle) obj;
- if (Double.doubleToLongBits(length) != Double.doubleToLongBits(other.length))
- return false;
- if (Double.doubleToLongBits(width) != Double.doubleToLongBits(other.width))
- return false;
- return true;
- }
-
- protected double getWidth() {
- return width;
- }
-
- protected double getLength() {
- return length;
- }
-
-}
\ No newline at end of file
diff --git a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Shape.java b/core-java/src/main/java/org/baeldung/equalshashcode/entities/Shape.java
deleted file mode 100644
index 3bfc81da8f..0000000000
--- a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Shape.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.baeldung.equalshashcode.entities;
-
-public abstract class Shape {
- public abstract double area();
-
- public abstract double perimeter();
-}
diff --git a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Square.java b/core-java/src/main/java/org/baeldung/equalshashcode/entities/Square.java
deleted file mode 100644
index f11e34f0ba..0000000000
--- a/core-java/src/main/java/org/baeldung/equalshashcode/entities/Square.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.baeldung.equalshashcode.entities;
-
-import java.awt.Color;
-
-public class Square extends Rectangle {
-
- Color color;
-
- public Square(double width, Color color) {
- super(width, width);
- this.color = color;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((color == null) ? 0 : color.hashCode());
- return result;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (!super.equals(obj)) {
- return false;
- }
- if (!(obj instanceof Square)) {
- return false;
- }
- Square other = (Square) obj;
- if (color == null) {
- if (other.color != null) {
- return false;
- }
- } else if (!color.equals(other.color)) {
- return false;
- }
- return true;
- }
-
- protected Color getColor() {
- return color;
- }
-
- protected void setColor(Color color) {
- this.color = color;
- }
-
-}
diff --git a/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java b/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java
deleted file mode 100644
index 2fe0a54664..0000000000
--- a/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.baeldung.java.reflection.operations;
-
-import com.baeldung.java.reflection.*;
-import static org.hamcrest.CoreMatchers.equalTo;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.junit.Test;
-import static org.junit.Assert.assertThat;
-
-public class MoreOperationsUnitTest {
-
- public MoreOperationsUnitTest() {
- }
-
- @Test(expected = IllegalAccessException.class)
- public void givenObject_whenInvokeProtectedMethod_thenFail() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
- Method maxProtectedMethod = Operations.class.getDeclaredMethod("protectedMax", int.class, int.class);
-
- Operations operationsInstance = new Operations();
- Integer result = (Integer) maxProtectedMethod.invoke(operationsInstance, 2, 4);
-
- assertThat(result, equalTo(4));
- }
-
- @Test
- public void givenObject_whenInvokeProtectedMethod_thenCorrect() throws Exception {
- Method maxProtectedMethod = Operations.class.getDeclaredMethod("protectedMax", int.class, int.class);
- maxProtectedMethod.setAccessible(true);
-
- Operations operationsInstance = new Operations();
- Integer result = (Integer) maxProtectedMethod.invoke(operationsInstance, 2, 4);
-
- assertThat(result, equalTo(4));
- }
-
-}
diff --git a/pom.xml b/pom.xml
index f4338bf995..9526158656 100644
--- a/pom.xml
+++ b/pom.xml
@@ -356,6 +356,8 @@
java-strings
core-java
+ core-java-lang
+ core-java-arrays
core-java-collections
java-collections-conversions
java-collections-maps