diff --git a/apache-curator/pom.xml b/apache-curator/pom.xml
index bcca38b199..e6be32277d 100644
--- a/apache-curator/pom.xml
+++ b/apache-curator/pom.xml
@@ -59,7 +59,7 @@
4.0.1
3.4.11
- 2.9.4
+ 2.9.7
3.6.1
1.7.0
diff --git a/core-java-concurrency/README.md b/core-java-concurrency/README.md
index 2db7b91cde..e8693a0231 100644
--- a/core-java-concurrency/README.md
+++ b/core-java-concurrency/README.md
@@ -31,3 +31,6 @@
- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield)
- [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads)
- [Java CyclicBarrier vs CountDownLatch](https://www.baeldung.com/java-cyclicbarrier-countdownlatch)
+- [Guide to the Fork/Join Framework in Java](http://www.baeldung.com/java-fork-join)
+- [A Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
+- [The Thread.join() Method in Java](http://www.baeldung.com/java-thread-join)
\ No newline at end of file
diff --git a/core-java-concurrency/pom.xml b/core-java-concurrency/pom.xml
index bd22253c2c..5dde4d5820 100644
--- a/core-java-concurrency/pom.xml
+++ b/core-java-concurrency/pom.xml
@@ -47,6 +47,16 @@
${avaitility.version}
test
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh-core.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh-generator-annprocess.version}
+
@@ -69,6 +79,8 @@
3.6.1
1.7.0
+ 1.19
+ 1.19
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveAction.java
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/CustomRecursiveTask.java
diff --git a/core-java/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java b/core-java-concurrency/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
rename to core-java-concurrency/src/main/java/com/baeldung/forkjoin/util/PoolUtil.java
diff --git a/core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java b/core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
rename to core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarkRunner.java
diff --git a/core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java b/core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
rename to core-java-concurrency/src/main/java/com/baeldung/threadlocalrandom/ThreadLocalRandomBenchMarker.java
diff --git a/core-java/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java b/core-java-concurrency/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/java8/Java8ForkJoinIntegrationTest.java
diff --git a/core-java/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java b/core-java-concurrency/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/thread/join/ThreadJoinUnitTest.java
diff --git a/core-java/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java b/core-java-concurrency/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
rename to core-java-concurrency/src/test/java/com/baeldung/threadlocalrandom/ThreadLocalRandomIntegrationTest.java
diff --git a/core-java-io/pom.xml b/core-java-io/pom.xml
index efa32b8e3e..ac5f1f7c2e 100644
--- a/core-java-io/pom.xml
+++ b/core-java-io/pom.xml
@@ -236,7 +236,7 @@
- 2.8.5
+ 2.9.7
3.5
diff --git a/core-java-lang-oop/.gitignore b/core-java-lang-oop/.gitignore
new file mode 100644
index 0000000000..3de4cc647e
--- /dev/null
+++ b/core-java-lang-oop/.gitignore
@@ -0,0 +1,26 @@
+*.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
+*.txt
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-lang-oop/README.md b/core-java-lang-oop/README.md
new file mode 100644
index 0000000000..665178452c
--- /dev/null
+++ b/core-java-lang-oop/README.md
@@ -0,0 +1,23 @@
+=========
+
+## Core Java Lang OOP Cookbooks and Examples
+
+### Relevant Articles:
+- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
+- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
+- [A Guide to Java Initialization](http://www.baeldung.com/java-initialization)
+- [Polymorphism in Java](http://www.baeldung.com/java-polymorphism)
+- [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)
+- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
+- [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)
+- [Inheritance and Composition (Is-a vs Has-a relationship) in Java](http://www.baeldung.com/java-inheritance-composition)
+- [A Guide to Constructors in Java](https://www.baeldung.com/java-constructors)
\ No newline at end of file
diff --git a/core-java-lang-oop/pom.xml b/core-java-lang-oop/pom.xml
new file mode 100644
index 0000000000..262408c024
--- /dev/null
+++ b/core-java-lang-oop/pom.xml
@@ -0,0 +1,91 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-lang-oop
+ 0.1.0-SNAPSHOT
+ jar
+ core-java-lang-oop
+
+
+ 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
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ ${equalsverifier.version}
+ test
+
+
+
+
+ core-java-lang-oop
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+
+ 2.8.5
+ 2.8.2
+
+
+ 3.5
+ 1.16.12
+
+ 3.10.0
+ 3.0.3
+
+
+
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/Public.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/Public.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/Public.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SubClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/SubClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SubClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/SuperPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSubClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java b/core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
rename to core-java-lang-oop/src/main/java/com/baeldung/accessmodifiers/another/AnotherSuperPublic.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Animal.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Animal.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Animal.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Animal.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeeder.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/AnimalFeeder.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeeder.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/AnimalFeederGeneric.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Cat.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Cat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Cat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Cat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Dog.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Dog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Dog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Dog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/casting/Mew.java b/core-java-lang-oop/src/main/java/com/baeldung/casting/Mew.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/casting/Mew.java
rename to core-java-lang-oop/src/main/java/com/baeldung/casting/Mew.java
diff --git a/core-java-lang/src/main/java/com/baeldung/constructors/BankAccount.java b/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/constructors/BankAccount.java
rename to core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
diff --git a/core-java-lang/src/main/java/com/baeldung/constructors/Transaction.java b/core-java-lang-oop/src/main/java/com/baeldung/constructors/Transaction.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/constructors/Transaction.java
rename to core-java-lang-oop/src/main/java/com/baeldung/constructors/Transaction.java
diff --git a/core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java b/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/deepcopy/Address.java
rename to core-java-lang-oop/src/main/java/com/baeldung/deepcopy/Address.java
diff --git a/core-java-lang/src/main/java/com/baeldung/deepcopy/User.java b/core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/deepcopy/User.java
rename to core-java-lang-oop/src/main/java/com/baeldung/deepcopy/User.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Money.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Money.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Money.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Money.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Team.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Team.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Team.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Team.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/Voucher.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Voucher.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/Voucher.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/Voucher.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongTeam.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongTeam.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/WrongVoucher.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/ComplexClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/PrimitiveClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Rectangle.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Shape.java
diff --git a/core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java b/core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Square.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/equalshashcode/entities/Square.java
rename to core-java-lang-oop/src/main/java/com/baeldung/equalshashcode/entities/Square.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackCat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackCat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackCat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackDog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/BlackDog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/BlackDog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Cat.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/Cat.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Cat.java
diff --git a/core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java b/core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Dog.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/finalkeyword/Dog.java
rename to core-java-lang-oop/src/main/java/com/baeldung/finalkeyword/Dog.java
diff --git a/core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java b/core-java-lang-oop/src/main/java/com/baeldung/hashcode/entities/User.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/hashcode/entities/User.java
rename to core-java-lang-oop/src/main/java/com/baeldung/hashcode/entities/User.java
diff --git a/core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java b/core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Currency.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/immutableobjects/Currency.java
rename to core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Currency.java
diff --git a/core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java b/core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Money.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/immutableobjects/Money.java
rename to core-java-lang-oop/src/main/java/com/baeldung/immutableobjects/Money.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/ArmoredCar.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/ArmoredCar.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/ArmoredCar.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/BMW.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/BMW.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/BMW.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Employee.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Employee.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Employee.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Floatable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Floatable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Floatable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/Flyable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/Flyable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/Flyable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceCar.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/SpaceCar.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceCar.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritance/SpaceTraveller.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/application/Application.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Actress.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Computer.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Memory.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Person.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Processor.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/SoundCard.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardMemory.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardProcessor.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/StandardSoundCard.java
diff --git a/core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java b/core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
rename to core-java-lang-oop/src/main/java/com/baeldung/inheritancecomposition/model/Waitress.java
diff --git a/core-java-lang-oop/src/main/java/com/baeldung/initializationguide/User.java b/core-java-lang-oop/src/main/java/com/baeldung/initializationguide/User.java
new file mode 100644
index 0000000000..e2e3f051dd
--- /dev/null
+++ b/core-java-lang-oop/src/main/java/com/baeldung/initializationguide/User.java
@@ -0,0 +1,53 @@
+package com.baeldung.initializationguide;
+
+import java.io.Serializable;
+
+public class User implements Serializable, Cloneable {
+ private static final long serialVersionUID = 1L;
+ static String forum;
+ private String name;
+ private int id;
+
+ {
+ id = 0;
+ System.out.println("Instance Initializer");
+ }
+
+ static {
+ forum = "Java";
+ System.out.println("Static Initializer");
+ }
+
+ public User(String name, int id) {
+ super();
+ this.name = name;
+ this.id = id;
+ }
+
+ public User() {
+ System.out.println("Constructor");
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException {
+ return this;
+ }
+
+}
+
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/KeywordDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/KeywordDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/KeywordDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperBase.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/superkeyword/SuperSub.java
diff --git a/core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java b/core-java-lang-oop/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
rename to core-java-lang-oop/src/main/java/com/baeldung/keyword/thiskeyword/KeywordUnitTest.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/application/Application.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/model/Vehicle.java
diff --git a/core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java b/core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
rename to core-java-lang-oop/src/main/java/com/baeldung/methodoverloadingoverriding/util/Multiplier.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/FileManager.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/FileManager.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/FileManager.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/GenericFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/GenericFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/GenericFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/ImageFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/ImageFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/ImageFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java b/core-java-lang-oop/src/main/java/com/baeldung/polymorphism/TextFile.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/polymorphism/TextFile.java
rename to core-java-lang-oop/src/main/java/com/baeldung/polymorphism/TextFile.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/BaseMethodClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/ChildMethodClass.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/method/MethodHidingDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ChildVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/ChildVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ChildVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/HideVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/HideVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/HideVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ParentVariable.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/ParentVariable.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/ParentVariable.java
diff --git a/core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java b/core-java-lang-oop/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
rename to core-java-lang-oop/src/main/java/com/baeldung/scope/variable/VariableHidingDemo.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Car.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/Car.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Car.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Singleton.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/Singleton.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/Singleton.java
diff --git a/core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java b/core-java-lang-oop/src/main/java/com/baeldung/staticdemo/StaticBlock.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/staticdemo/StaticBlock.java
rename to core-java-lang-oop/src/main/java/com/baeldung/staticdemo/StaticBlock.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/ArrayContentPrintUtil.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/BoundStack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/BoundStack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/BoundStack.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/IntegerStack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/IntegerStack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/IntegerStack.java
diff --git a/core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java b/core-java-lang-oop/src/main/java/com/baeldung/typeerasure/Stack.java
similarity index 100%
rename from core-java-lang/src/main/java/com/baeldung/typeerasure/Stack.java
rename to core-java-lang-oop/src/main/java/com/baeldung/typeerasure/Stack.java
diff --git a/core-java-lang-oop/src/main/resources/logback.xml b/core-java-lang-oop/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-lang-oop/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/casting/CastingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/casting/CastingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/casting/CastingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/deepcopy/DeepCopyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/deepcopy/ShallowCopyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/TeamUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/ComplexClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/PrimitiveClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/equalshashcode/entities/SquareClassUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/finalkeyword/FinalUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/hashcode/application/ApplicationUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/hashcode/entities/UserUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritance/AppUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritance/AppUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritance/AppUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/ActressUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/CompositionUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/InheritanceUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/PersonUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/inheritancecomposition/test/WaitressUnitTest.java
diff --git a/core-java-lang-oop/src/test/java/com/baeldung/initializationguide/UserUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
new file mode 100644
index 0000000000..f74384e6f7
--- /dev/null
+++ b/core-java-lang-oop/src/test/java/com/baeldung/initializationguide/UserUnitTest.java
@@ -0,0 +1,37 @@
+package com.baeldung.initializationguide;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.lang.reflect.InvocationTargetException;
+
+public class UserUnitTest {
+
+ @Test
+ public void givenUserInstance_whenIntializedWithNew_thenInstanceIsNotNull() {
+ User user = new User("Alice", 1);
+ assertThat(user).isNotNull();
+ }
+
+ @Test
+ public void givenUserInstance_whenInitializedWithReflection_thenInstanceIsNotNull() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
+ User user = User.class.getConstructor(String.class, int.class)
+ .newInstance("Alice", 2);
+ assertThat(user).isNotNull();
+ }
+
+ @Test
+ public void givenUserInstance_whenCopiedWithClone_thenExactMatchIsCreated() throws CloneNotSupportedException {
+ User user = new User("Alice", 3);
+ User clonedUser = (User) user.clone();
+ assertThat(clonedUser).isEqualTo(user);
+ }
+
+ @Test
+ public void givenUserInstance_whenValuesAreNotInitialized_thenUserNameAndIdReturnDefault() {
+ User user = new User();
+ assertThat(user.getName()).isNull();
+ assertThat(user.getId() == 0);
+ }
+}
diff --git a/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverloadingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/methodoverloadingoverriding/test/MethodOverridingUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/NonPrimitivesUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/parameterpassing/PrimitivesUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/polymorphism/PolymorphismUnitTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/CarIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/SingletonIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java b/core-java-lang-oop/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/staticdemo/StaticBlockIntegrationTest.java
diff --git a/core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
similarity index 100%
rename from core-java-lang/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
rename to core-java-lang-oop/src/test/java/com/baeldung/typeerasure/TypeErasureUnitTest.java
diff --git a/core-java-lang-oop/src/test/resources/.gitignore b/core-java-lang-oop/src/test/resources/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/core-java-lang-oop/src/test/resources/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/core-java-lang/README.md b/core-java-lang/README.md
index 0ca4d3009f..0d51535316 100644
--- a/core-java-lang/README.md
+++ b/core-java-lang/README.md
@@ -10,27 +10,18 @@
- [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)
-- [Guide to hashCode() in Java](http://www.baeldung.com/java-hashcode)
-- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
+- [Java Double Brace Initialization](http://www.baeldung.com/java-double-brace-initialization)
+- [Guide to the Diamond Operator in Java](http://www.baeldung.com/java-diamond-operator)
- [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)
- [Nested Classes in Java](http://www.baeldung.com/java-nested-classes)
- [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)
-- [Type Erasure in Java Explained](http://www.baeldung.com/java-type-erasure)
+- [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)
- [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)
@@ -41,7 +32,5 @@
- [Synthetic Constructs in Java](https://www.baeldung.com/java-synthetic)
- [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)
-- [A Guide to Constructors in Java](https://www.baeldung.com/java-constructors)
- [Retrieving a Class Name in Java](https://www.baeldung.com/java-class-name)
- [Java equals() and hashCode() Contracts](https://www.baeldung.com/java-equals-hashcode-contracts)
diff --git a/core-java-lang/pom.xml b/core-java-lang/pom.xml
index 2f307859f1..283acab775 100644
--- a/core-java-lang/pom.xml
+++ b/core-java-lang/pom.xml
@@ -56,22 +56,11 @@
${assertj-core.version}
test
-
- org.springframework
- spring-web
- ${springframework.spring-web.version}
-
javax.mail
mail
${javax.mail.version}
-
- nl.jqno.equalsverifier
- equalsverifier
- ${equalsverifier.version}
- test
-
@@ -82,334 +71,12 @@
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
- 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.9.7
2.8.2
@@ -420,17 +87,6 @@
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
- 3.0.3
diff --git a/core-java-networking/README.md b/core-java-networking/README.md
index 626ea794e6..2cb2c52d3d 100644
--- a/core-java-networking/README.md
+++ b/core-java-networking/README.md
@@ -5,3 +5,7 @@
### Relevant Articles
- [Connecting Through Proxy Servers in Core Java](https://www.baeldung.com/java-connect-via-proxy-server)
+- [Broadcasting and Multicasting in Java](http://www.baeldung.com/java-broadcast-multicast)
+- [A Guide To UDP In Java](http://www.baeldung.com/udp-in-java)
+- [Sending Emails with Java](http://www.baeldung.com/java-email)
+- [Console I/O in Java](http://www.baeldung.com/java-console-input-output)
\ No newline at end of file
diff --git a/core-java-networking/pom.xml b/core-java-networking/pom.xml
index 178295e1ec..7d7bf4bc95 100644
--- a/core-java-networking/pom.xml
+++ b/core-java-networking/pom.xml
@@ -13,7 +13,19 @@
../parent-java
+
+
+ javax.mail
+ mail
+ ${javax.mail.version}
+
+
+
core-java-networking
+
+
+ 1.5.0-b01
+
diff --git a/core-java/src/main/java/com/baeldung/console/ConsoleConsoleClass.java b/core-java-networking/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
rename to core-java-networking/src/main/java/com/baeldung/console/ConsoleConsoleClass.java
diff --git a/core-java/src/main/java/com/baeldung/console/ConsoleScannerClass.java b/core-java-networking/src/main/java/com/baeldung/console/ConsoleScannerClass.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/console/ConsoleScannerClass.java
rename to core-java-networking/src/main/java/com/baeldung/console/ConsoleScannerClass.java
diff --git a/core-java/src/main/java/com/baeldung/mail/EmailService.java b/core-java-networking/src/main/java/com/baeldung/mail/EmailService.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/mail/EmailService.java
rename to core-java-networking/src/main/java/com/baeldung/mail/EmailService.java
diff --git a/core-java/src/main/java/com/baeldung/networking/README.md b/core-java-networking/src/main/java/com/baeldung/networking/README.md
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/README.md
rename to core-java-networking/src/main/java/com/baeldung/networking/README.md
diff --git a/core-java/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java b/core-java-networking/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
rename to core-java-networking/src/main/java/com/baeldung/networking/cookies/PersistentCookieStore.java
diff --git a/core-java/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java b/core-java-networking/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
rename to core-java-networking/src/main/java/com/baeldung/networking/cookies/ProxyAcceptCookiePolicy.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/EchoClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/EchoClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/EchoClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/EchoClient.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/EchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/EchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/EchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/EchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingClient.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/broadcast/BroadcastingEchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastEchoServer.java
diff --git a/core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java b/core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
rename to core-java-networking/src/main/java/com/baeldung/networking/udp/multicast/MulticastingClient.java
diff --git a/core-java-networking/src/main/resources/logback.xml b/core-java-networking/src/main/resources/logback.xml
new file mode 100644
index 0000000000..56af2d397e
--- /dev/null
+++ b/core-java-networking/src/main/resources/logback.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/UDPLiveTest.java
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/broadcast/BroadcastLiveTest.java
diff --git a/core-java/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java b/core-java-networking/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
rename to core-java-networking/src/test/java/com/baeldung/networking/udp/multicast/MulticastLiveTest.java
diff --git a/core-java-sun/pom.xml b/core-java-sun/pom.xml
index 57d5e9da5b..ef68c947ce 100644
--- a/core-java-sun/pom.xml
+++ b/core-java-sun/pom.xml
@@ -262,7 +262,7 @@
- 2.8.5
+ 2.9.7
23.0
diff --git a/core-java/README.md b/core-java/README.md
index 4fbc8bbc6e..961ca45cce 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -7,7 +7,6 @@
- [How to Run a Shell Command in Java](http://www.baeldung.com/run-shell-command-in-java)
- [MD5 Hashing in Java](http://www.baeldung.com/java-md5)
- [A Guide to Java Sockets](http://www.baeldung.com/a-guide-to-java-sockets)
-- [Guide to the Fork/Join Framework in Java](http://www.baeldung.com/java-fork-join)
- [How to Print Screen in Java](http://www.baeldung.com/print-screen-in-java)
- [A Guide To Java Regular Expressions API](http://www.baeldung.com/regular-expressions-java)
- [Getting Started with Java Properties](http://www.baeldung.com/java-properties)
@@ -27,13 +26,11 @@
- [Guide to UUID in Java](http://www.baeldung.com/java-uuid)
- [Guide to Escaping Characters in Java RegExps](http://www.baeldung.com/java-regexp-escape-char)
- [Difference between URL and URI](http://www.baeldung.com/java-url-vs-uri)
-- [Broadcasting and Multicasting in Java](http://www.baeldung.com/java-broadcast-multicast)
- [OutOfMemoryError: GC Overhead Limit Exceeded](http://www.baeldung.com/java-gc-overhead-limit-exceeded)
- [Creating a Java Compiler Plugin](http://www.baeldung.com/java-build-compiler-plugin)
- [Quick Guide to Java Stack](http://www.baeldung.com/java-stack)
- [Guide to java.util.Formatter](http://www.baeldung.com/java-string-formatter)
- [Guide to the Cipher Class](http://www.baeldung.com/java-cipher-class)
-- [A Guide to ThreadLocalRandom in Java](http://www.baeldung.com/java-thread-local-random)
- [Compiling Java *.class Files with javac](http://www.baeldung.com/javac)
- [A Guide to Iterator in Java](http://www.baeldung.com/java-iterator)
- [Introduction to Javadoc](http://www.baeldung.com/javadoc)
@@ -42,31 +39,20 @@
- [How to Detect the OS Using Java](http://www.baeldung.com/java-detect-os)
- [ASCII Art in Java](http://www.baeldung.com/ascii-art-in-java)
- [What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid)
-- [A Guide To UDP In Java](http://www.baeldung.com/udp-in-java)
- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle)
- [Class Loaders in Java](http://www.baeldung.com/java-classloaders)
-- [Sending Emails with Java](http://www.baeldung.com/java-email)
- [Introduction to SSL in Java](http://www.baeldung.com/java-ssl)
- [Java KeyStore API](http://www.baeldung.com/java-keystore)
- [Double-Checked Locking with Singleton](http://www.baeldung.com/java-singleton-double-checked-locking)
- [Guide to Java Clock Class](http://www.baeldung.com/java-clock)
-- [Introduction to Creational Design Patterns](http://www.baeldung.com/creational-design-patterns)
-- [Proxy, Decorator, Adapter and Bridge Patterns](http://www.baeldung.com/java-structural-design-patterns)
-- [Singletons in Java](http://www.baeldung.com/java-singleton)
-- [Flyweight Pattern in Java](http://www.baeldung.com/java-flyweight)
-- [The Observer Pattern in Java](http://www.baeldung.com/java-observer-pattern)
-- [Service Locator Pattern](http://www.baeldung.com/java-service-locator-pattern)
-- [The Thread.join() Method in Java](http://www.baeldung.com/java-thread-join)
- [Importance of Main Manifest Attribute in a Self-Executing JAR](http://www.baeldung.com/java-jar-executable-manifest-main-class)
- [How to Get the File Extension of a File in Java](http://www.baeldung.com/java-file-extension)
-- [Console I/O in Java](http://www.baeldung.com/java-console-input-output)
- [Java Global Exception Handler](http://www.baeldung.com/java-global-exception-handler)
- [Encrypting and Decrypting Files in Java](http://www.baeldung.com/java-cipher-input-output-stream)
- [How to Get the Size of an Object in Java](http://www.baeldung.com/java-size-of-object)
- [Guide to Java Instrumentation](http://www.baeldung.com/java-instrumentation)
- [Getting a File’s Mime Type in Java](http://www.baeldung.com/java-file-mime-type)
- [Common Java Exceptions](http://www.baeldung.com/java-common-exceptions)
-- [Java Constructors vs Static Factory Methods](https://www.baeldung.com/java-constructors-vs-static-factory-methods)
- [Throw Exception in Optional in Java 8](https://www.baeldung.com/java-optional-throw-exception)
- [Add a Character to a String at a Given Position](https://www.baeldung.com/java-add-character-to-string)
- [Calculating the nth Root in Java](https://www.baeldung.com/java-nth-root)
diff --git a/core-java/pom.xml b/core-java/pom.xml
index 64345ab14c..442d378dab 100644
--- a/core-java/pom.xml
+++ b/core-java/pom.xml
@@ -131,11 +131,6 @@
h2
${h2database.version}
-
- javax.mail
- mail
- ${javax.mail.version}
-
org.apache.tika
@@ -482,7 +477,7 @@
- 2.8.5
+ 2.9.7
2.8.2
@@ -514,7 +509,6 @@
1.19
3.0.0-M1
- 1.5.0-b01
3.0.2
1.4.4
3.1.1
diff --git a/couchbase/pom.xml b/couchbase/pom.xml
index 4f0f8787ca..7da027597e 100644
--- a/couchbase/pom.xml
+++ b/couchbase/pom.xml
@@ -70,7 +70,7 @@
2.5.0
4.3.5.RELEASE
3.5
- 2.9.1
+ 2.9.7
diff --git a/ethereum/pom.xml b/ethereum/pom.xml
index bd1bacb221..85cb260670 100644
--- a/ethereum/pom.xml
+++ b/ethereum/pom.xml
@@ -215,9 +215,9 @@
5.0.5.RELEASE
1.5.6.RELEASE
2.21.0
- 2.5.0
+ 2.9.7
1.3
- 2.9.3
+ 2.9.7
2.3.1
3.1.0
2.4.0
diff --git a/guest/log4j2-example/pom.xml b/guest/log4j2-example/pom.xml
index ab55e0b60e..045ff7325b 100644
--- a/guest/log4j2-example/pom.xml
+++ b/guest/log4j2-example/pom.xml
@@ -41,7 +41,7 @@
- 2.8.8.1
+ 2.9.7
2.8.2
diff --git a/java-lite/pom.xml b/java-lite/pom.xml
index 03f4e29f4e..b261e521a1 100644
--- a/java-lite/pom.xml
+++ b/java-lite/pom.xml
@@ -95,7 +95,7 @@
1.15
5.1.45
1.7.0
- 1.8.2
+ 2.9.7
1.15
diff --git a/java-strings/src/test/java/com/baeldung/StringConcatenationUnitTest.java b/java-strings/src/test/java/com/baeldung/StringConcatenationUnitTest.java
new file mode 100644
index 0000000000..c25d4ce8f9
--- /dev/null
+++ b/java-strings/src/test/java/com/baeldung/StringConcatenationUnitTest.java
@@ -0,0 +1,105 @@
+package com.baeldung;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.StringJoiner;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+public class StringConcatenationUnitTest {
+
+ @Test
+ public void givenMultipleStrings_whenConcatUsingStringBuilder_checkStringCorrect() {
+
+ StringBuilder stringBuilder = new StringBuilder(100);
+ stringBuilder.append("Baeldung");
+ stringBuilder.append(" is");
+ stringBuilder.append(" awesome");
+
+ assertEquals("Baeldung is awesome", stringBuilder.toString());
+
+ }
+
+ @Test
+ public void givenMultipleString_whenConcatUsingAdditionOperator_checkStringCorrect() {
+
+ String myString = "The " + "quick " + "brown " + "fox...";
+
+ assertEquals("The quick brown fox...", myString);
+ }
+
+
+ @Test
+ public void givenMultipleStrings_whenConcatUsingStringFormat_checkStringCorrect() {
+
+ String myString = String.format("%s %s %.2f %s %s, %s...", "I",
+ "ate",
+ 2.5056302,
+ "blueberry",
+ "pies",
+ "oops");
+
+
+ assertEquals("I ate 2.51 blueberry pies, oops...", myString);
+ }
+
+ @Test
+ public void givenMultipleStrings_whenStringConcatUsed_checkStringCorrect() {
+
+ String myString = "Both".concat(" fickle")
+ .concat(" dwarves")
+ .concat(" jinx")
+ .concat(" my")
+ .concat(" pig")
+ .concat(" quiz");
+
+ assertEquals("Both fickle dwarves jinx my pig quiz", myString);
+
+
+ }
+
+ @Test
+ public void givenMultipleStrings_whenStringJoinUsed_checkStringCorrect() {
+
+ String[] strings = {"I'm", "running", "out", "of", "pangrams!"};
+
+ String myString = String.join(" ", strings);
+
+ assertEquals("I'm running out of pangrams!", myString);
+
+ }
+
+ @Test
+ public void givenMultipleStrings_whenStringJoinerUsed_checkStringCorrect() {
+
+ StringJoiner fruitJoiner = new StringJoiner(", ");
+ fruitJoiner.add("Apples");
+ fruitJoiner.add("Oranges");
+ fruitJoiner.add("Bananas");
+
+ assertEquals("Apples, Oranges, Bananas", fruitJoiner.toString());
+ }
+
+ @Test
+ public void givenMultipleStrings_whenArrayJoiner_checkStringCorrect() {
+
+ String[] myFavouriteLanguages = {"Java", "JavaScript", "Python"};
+
+ String toString = Arrays.toString(myFavouriteLanguages);
+
+ assertEquals("[Java, JavaScript, Python]", toString);
+ }
+
+ @Test
+ public void givenArrayListOfStrings_whenCollectorsJoin_checkStringCorrect() {
+
+ List awesomeAnimals = Arrays.asList("Shark", "Panda", "Armadillo");
+
+ String animalString = awesomeAnimals.stream().collect(Collectors.joining(", "));
+
+ assertEquals("Shark, Panda, Armadillo", animalString);
+ }
+}
diff --git a/libraries-data/pom.xml b/libraries-data/pom.xml
index f913cf32ca..daf6c8b500 100644
--- a/libraries-data/pom.xml
+++ b/libraries-data/pom.xml
@@ -442,7 +442,7 @@
2.8.2
1.1.0
1.5.0
- 2.8.5
+ 2.9.7
3.0.0
3.6.2
3.8.4
diff --git a/libraries/pom.xml b/libraries/pom.xml
index 3a51ff5be0..c7ef64bc59 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -818,7 +818,7 @@
1.0
4.5.3
- 2.8.5
+ 2.9.7
2.92
1.9.26
1.41.0
diff --git a/logging-modules/log-mdc/pom.xml b/logging-modules/log-mdc/pom.xml
index 8e9968085e..3031274d0b 100644
--- a/logging-modules/log-mdc/pom.xml
+++ b/logging-modules/log-mdc/pom.xml
@@ -103,7 +103,7 @@
3.3.6
3.3.0.Final
3.1.0
- 2.8.5
+ 2.9.7
2.4
diff --git a/logging-modules/log4j2/pom.xml b/logging-modules/log4j2/pom.xml
index d46f92dcd6..924abfd346 100644
--- a/logging-modules/log4j2/pom.xml
+++ b/logging-modules/log4j2/pom.xml
@@ -115,7 +115,7 @@
- 2.9.5
+ 2.9.7
1.4.193
2.1.1
2.11.0
diff --git a/logging-modules/logback/pom.xml b/logging-modules/logback/pom.xml
index e917754b3c..ef7adbc3ea 100644
--- a/logging-modules/logback/pom.xml
+++ b/logging-modules/logback/pom.xml
@@ -42,7 +42,7 @@
1.2.3
0.1.5
- 2.9.3
+ 2.9.7
diff --git a/patterns/README.md b/patterns/README.md
index 221cba6456..9653558f43 100644
--- a/patterns/README.md
+++ b/patterns/README.md
@@ -5,4 +5,10 @@
- [Chain of Responsibility Design Pattern in Java](http://www.baeldung.com/chain-of-responsibility-pattern)
- [The Command Pattern in Java](http://www.baeldung.com/java-command-pattern)
- [The DAO Pattern in Java](http://www.baeldung.com/java-dao-pattern)
-
+- [Introduction to Creational Design Patterns](http://www.baeldung.com/creational-design-patterns)
+- [Proxy, Decorator, Adapter and Bridge Patterns](http://www.baeldung.com/java-structural-design-patterns)
+- [Singletons in Java](http://www.baeldung.com/java-singleton)
+- [Flyweight Pattern in Java](http://www.baeldung.com/java-flyweight)
+- [The Observer Pattern in Java](http://www.baeldung.com/java-observer-pattern)
+- [Service Locator Pattern](http://www.baeldung.com/java-service-locator-pattern)
+- [Java Constructors vs Static Factory Methods](https://www.baeldung.com/java-constructors-vs-static-factory-methods)
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java b/patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
rename to patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/application/Application.java
diff --git a/core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java b/patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
similarity index 100%
rename from core-java/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
rename to patterns/design-patterns/src/main/java/com/baeldung/constructorsstaticfactorymethods/entities/User.java
diff --git a/core-java/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java b/patterns/design-patterns/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java
similarity index 100%
rename from core-java/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java
rename to patterns/design-patterns/src/test/java/com/baeldung/constructorsstaticfactorymethods/UserUnitTest.java
diff --git a/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/bootstrap/BootstrapAPIIntegrationTest.java b/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/bootstrap/BootstrapAPIIntegrationTest.java
new file mode 100644
index 0000000000..19988b45be
--- /dev/null
+++ b/persistence-modules/hibernate5/src/test/java/com/baeldung/hibernate/bootstrap/BootstrapAPIIntegrationTest.java
@@ -0,0 +1,47 @@
+package com.baeldung.hibernate.bootstrap;
+
+import com.baeldung.hibernate.pojo.Movie;
+import org.hibernate.SessionFactory;
+import org.hibernate.boot.Metadata;
+import org.hibernate.boot.MetadataSources;
+import org.hibernate.boot.registry.BootstrapServiceRegistry;
+import org.hibernate.boot.registry.BootstrapServiceRegistryBuilder;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
+import org.hibernate.service.ServiceRegistry;
+import org.junit.After;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertNotNull;
+
+public class BootstrapAPIIntegrationTest {
+
+ SessionFactory sessionFactory = null;
+
+ @Test
+ public void whenServiceRegistryAndMetadata_thenSessionFactory() throws IOException {
+
+ BootstrapServiceRegistry bootstrapRegistry = new BootstrapServiceRegistryBuilder()
+ .build();
+
+ ServiceRegistry standardRegistry = new StandardServiceRegistryBuilder(bootstrapRegistry)
+ // No need for hibernate.cfg.xml file, an hibernate.properties is sufficient.
+ //.configure()
+ .build();
+
+ MetadataSources metadataSources = new MetadataSources(standardRegistry);
+ metadataSources.addAnnotatedClass(Movie.class);
+
+ Metadata metadata = metadataSources.getMetadataBuilder().build();
+
+ sessionFactory = metadata.buildSessionFactory();
+ assertNotNull(sessionFactory);
+ sessionFactory.close();
+ }
+
+ @After
+ public void clean() throws IOException {
+ sessionFactory.close();
+ }
+}
diff --git a/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateManyisOwningSide.java b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateManyisOwningSide.java
new file mode 100644
index 0000000000..372fb2fc07
--- /dev/null
+++ b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateManyisOwningSide.java
@@ -0,0 +1,71 @@
+package com.baeldung.hibernate.oneToMany.main;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+
+import com.baeldung.hibernate.oneToMany.config.HibernateAnnotationUtil;
+import com.baeldung.hibernate.oneToMany.model.Cart;
+import com.baeldung.hibernate.oneToMany.model.Items;
+import com.baeldung.hibernate.oneToMany.model.ItemsOIO;
+
+public class HibernateManyisOwningSide {
+ public static void main(String[] args) {
+
+ Cart cart = new Cart();
+ Cart cart2 = new Cart();
+
+ Items item1 = new Items(cart);
+ Items item2 = new Items(cart2);
+ Set itemsSet = new HashSet();
+ itemsSet.add(item1);
+ itemsSet.add(item2);
+
+ cart.setItems(itemsSet);
+
+
+
+ SessionFactory sessionFactory = null;
+ Session session = null;
+ Transaction tx = null;
+ try {
+ // Get Session
+ sessionFactory = HibernateAnnotationUtil.getSessionFactory();
+ session = sessionFactory.getCurrentSession();
+ System.out.println("Session created");
+ // start transaction
+ tx = session.beginTransaction();
+ // Save the Model object
+ session.save(cart);
+ session.save(cart2);
+ session.save(item1);
+ session.save(item2);
+ // Commit transaction
+ tx.commit();
+ session = sessionFactory.getCurrentSession();
+ tx = session.beginTransaction();
+
+ item1 = (Items) session.get(Items.class, new Long(1));
+ item2 = (Items) session.get(Items.class, new Long(2));
+ tx.commit();
+
+
+ System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCart()
+ .getId());
+ System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCart()
+ .getId());
+
+ } catch (Exception e) {
+ System.out.println("Exception occured. " + e.getMessage());
+ e.printStackTrace();
+ } finally {
+ if (!sessionFactory.isClosed()) {
+ System.out.println("Closing SessionFactory");
+ sessionFactory.close();
+ }
+ }
+ }
+}
diff --git a/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateOneisOwningSide.java b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateOneisOwningSide.java
new file mode 100644
index 0000000000..0777664dd0
--- /dev/null
+++ b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/main/HibernateOneisOwningSide.java
@@ -0,0 +1,67 @@
+package com.baeldung.hibernate.oneToMany.main;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+
+import com.baeldung.hibernate.oneToMany.config.HibernateAnnotationUtil;
+import com.baeldung.hibernate.oneToMany.model.CartOIO;
+import com.baeldung.hibernate.oneToMany.model.ItemsOIO;
+
+public class HibernateOneisOwningSide {
+ public static void main(String[] args) {
+
+ CartOIO cart = new CartOIO();
+ CartOIO cart2 = new CartOIO();
+
+ ItemsOIO item1 = new ItemsOIO(cart);
+ ItemsOIO item2 = new ItemsOIO(cart2);
+ Set itemsSet = new HashSet();
+ itemsSet.add(item1);
+ itemsSet.add(item2);
+
+ cart.setItems(itemsSet);
+
+ SessionFactory sessionFactory = null;
+ Session session = null;
+ Transaction tx = null;
+ try {
+ // Get Session
+ sessionFactory = HibernateAnnotationUtil.getSessionFactory();
+ session = sessionFactory.getCurrentSession();
+ System.out.println("Session created");
+ // start transaction
+ tx = session.beginTransaction();
+ // Save the Model object
+ session.save(cart);
+ session.save(cart2);
+ session.save(item1);
+ session.save(item2);
+ // Commit transaction
+ tx.commit();
+
+ session = sessionFactory.getCurrentSession();
+ tx = session.beginTransaction();
+ item1 = (ItemsOIO) session.get(ItemsOIO.class, new Long(1));
+ item2 = (ItemsOIO) session.get(ItemsOIO.class, new Long(2));
+ tx.commit();
+
+ System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCartOIO()
+ .getId());
+ System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCartOIO()
+ .getId());
+
+ } catch (Exception e) {
+ System.out.println("Exception occured. " + e.getMessage());
+ e.printStackTrace();
+ } finally {
+ if (!sessionFactory.isClosed()) {
+ System.out.println("Closing SessionFactory");
+ sessionFactory.close();
+ }
+ }
+ }
+}
diff --git a/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/CartOIO.java b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/CartOIO.java
new file mode 100644
index 0000000000..8a5ed5e7a4
--- /dev/null
+++ b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/CartOIO.java
@@ -0,0 +1,42 @@
+package com.baeldung.hibernate.oneToMany.model;
+
+import java.util.Set;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+
+
+@Entity
+@Table(name = "CARTOIO")
+public class CartOIO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private long id;
+
+ @OneToMany
+ @JoinColumn(name = "cart_id") // we need to duplicate the physical information
+ private Set items;
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public Set getItems() {
+ return items;
+ }
+
+ public void setItems(Set items) {
+ this.items = items;
+ }
+
+}
diff --git a/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/ItemsOIO.java b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/ItemsOIO.java
new file mode 100644
index 0000000000..a3d6a796c5
--- /dev/null
+++ b/persistence-modules/spring-hibernate4/src/main/java/com/baeldung/hibernate/oneToMany/model/ItemsOIO.java
@@ -0,0 +1,47 @@
+package com.baeldung.hibernate.oneToMany.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "ITEMSOIO")
+public class ItemsOIO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private long id;
+
+ @ManyToOne
+ @JoinColumn(name = "cart_id", insertable = false, updatable = false)
+ private CartOIO cart;
+
+ // Hibernate requires no-args constructor
+ public ItemsOIO() {
+ }
+
+ public ItemsOIO(CartOIO c) {
+ this.cart = c;
+ }
+
+ public CartOIO getCartOIO() {
+ return cart;
+ }
+
+ public void setCartOIO(CartOIO cart) {
+ this.cart = cart;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+}
diff --git a/persistence-modules/spring-hibernate4/src/main/resources/hibernate-annotation.cfg.xml b/persistence-modules/spring-hibernate4/src/main/resources/hibernate-annotation.cfg.xml
index 311300c77c..14d853d3fd 100644
--- a/persistence-modules/spring-hibernate4/src/main/resources/hibernate-annotation.cfg.xml
+++ b/persistence-modules/spring-hibernate4/src/main/resources/hibernate-annotation.cfg.xml
@@ -9,11 +9,13 @@
jdbc:mysql://localhost:3306/spring_hibernate_one_to_many?createDatabaseIfNotExist=true
myuser
org.hibernate.dialect.MySQLDialect
-
+ create
thread
true
+
+
diff --git a/pom.xml b/pom.xml
index adea3b114d..51c94458fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -383,6 +383,7 @@
core-java-io
core-java-lang-syntax
core-java-lang
+ core-java-lang-oop
core-java-networking
core-java-sun
core-scala
@@ -1091,6 +1092,7 @@
core-java-io
core-java-lang-syntax
core-java-lang
+ core-java-lang-oop
core-java-networking
core-java-sun
core-scala
@@ -1606,7 +1608,7 @@
2.3.1
1.9.13
1.2
- 2.5.0
+ 2.9.7
1.3
1.2.0
5.2.0
diff --git a/rest-with-spark-java/pom.xml b/rest-with-spark-java/pom.xml
index a0005b7dec..f7c91f8827 100644
--- a/rest-with-spark-java/pom.xml
+++ b/rest-with-spark-java/pom.xml
@@ -34,8 +34,8 @@
2.5.4
- 2.8.6
- 2.8.6
+ 2.9.7
+ 2.9.7
diff --git a/spring-jersey/pom.xml b/spring-jersey/pom.xml
index 5e7b50d291..b548de3701 100644
--- a/spring-jersey/pom.xml
+++ b/spring-jersey/pom.xml
@@ -101,12 +101,12 @@
com.fasterxml.jackson.jaxrs
jackson-jaxrs-json-provider
- 2.6.0
+ 2.9.7
com.fasterxml.jackson.core
jackson-databind
- 2.6.0
+ 2.9.7
org.slf4j
diff --git a/spring-kafka/pom.xml b/spring-kafka/pom.xml
index 3060dc00b3..be16da5ff0 100644
--- a/spring-kafka/pom.xml
+++ b/spring-kafka/pom.xml
@@ -35,7 +35,7 @@
1.1.3.RELEASE
- 2.6.7
+ 2.9.7
\ No newline at end of file
diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml
index 8d7ad0fa7f..65fa4339d6 100644
--- a/spring-mvc-simple/pom.xml
+++ b/spring-mvc-simple/pom.xml
@@ -196,7 +196,7 @@
1.2.5
1.0.2
1.9.0
- 2.9.4
+ 2.9.7
1.4.9
5.1.0
20180130
diff --git a/spring-security-mvc-custom/pom.xml b/spring-security-mvc-custom/pom.xml
index a1a1beb4f4..12520a0d01 100644
--- a/spring-security-mvc-custom/pom.xml
+++ b/spring-security-mvc-custom/pom.xml
@@ -202,7 +202,7 @@
19.0
3.5
- 2.9.4
+ 2.9.7
2.6
diff --git a/spring-security-mvc-socket/pom.xml b/spring-security-mvc-socket/pom.xml
index d1b8365077..b83f10d9fe 100644
--- a/spring-security-mvc-socket/pom.xml
+++ b/spring-security-mvc-socket/pom.xml
@@ -188,7 +188,7 @@
1.11.3.RELEASE
1.4.196
1.2.3
- 2.8.7
+ 2.9.7
\ No newline at end of file
diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml
index ef16f2201b..37c743e896 100644
--- a/spring-security-rest/pom.xml
+++ b/spring-security-rest/pom.xml
@@ -281,7 +281,7 @@
3.1.0
1.1.0.Final
1.2
- 2.9.2
+ 2.9.7
26.0-jre
diff --git a/spring-swagger-codegen/spring-swagger-codegen-api-client/pom.xml b/spring-swagger-codegen/spring-swagger-codegen-api-client/pom.xml
index 06a92ffae7..c175ea48b3 100644
--- a/spring-swagger-codegen/spring-swagger-codegen-api-client/pom.xml
+++ b/spring-swagger-codegen/spring-swagger-codegen-api-client/pom.xml
@@ -189,7 +189,7 @@
1.5.15
4.3.9.RELEASE
- 2.8.9
+ 2.9.7
2.9.9
2.2
1.5
diff --git a/testing-modules/rest-assured/pom.xml b/testing-modules/rest-assured/pom.xml
index ed7e5e3577..687a9a2fe4 100644
--- a/testing-modules/rest-assured/pom.xml
+++ b/testing-modules/rest-assured/pom.xml
@@ -171,7 +171,7 @@
- 2.8.5
+ 2.9.7
1.8
19.0
diff --git a/testing-modules/rest-testing/pom.xml b/testing-modules/rest-testing/pom.xml
index 9bfd715682..2fa303a98e 100644
--- a/testing-modules/rest-testing/pom.xml
+++ b/testing-modules/rest-testing/pom.xml
@@ -151,7 +151,7 @@
- 2.8.5
+ 2.9.7
19.0
diff --git a/vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/application/Application.java b/vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
similarity index 95%
rename from vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/application/Application.java
rename to vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
index 8acc4522af..a23ed185c8 100644
--- a/vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/application/Application.java
+++ b/vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
@@ -8,10 +8,10 @@ import io.vavr.control.Validation;
public class Application {
public static void main(String[] args) {
-
+
UserValidator userValidator = new UserValidator();
Validation, User> validation = userValidator.validateUser("John", "john@domain.com");
-
+
// process validation results here
- }
+ }
}
diff --git a/vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/model/User.java b/vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java
similarity index 100%
rename from vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/model/User.java
rename to vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java
diff --git a/vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java b/vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
similarity index 100%
rename from vavr/vavr-validation/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
rename to vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
diff --git a/vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorTest.java b/vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
similarity index 95%
rename from vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorTest.java
rename to vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
index cb9557fa53..8ac6100b27 100644
--- a/vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorTest.java
+++ b/vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
@@ -7,7 +7,7 @@ import com.baeldung.vavrvalidation.validator.UserValidator;
import io.vavr.control.Validation.Invalid;
import io.vavr.control.Validation.Valid;
-public class UserValidatorTest {
+public class UserValidatorUnitTest {
@Test
public void givenValidUserParams_whenValidated_thenInstanceOfValid() {
diff --git a/vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/ValidationTest.java b/vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java
similarity index 98%
rename from vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/ValidationTest.java
rename to vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java
index c89b43b5e3..7b8c551aeb 100644
--- a/vavr/vavr-validation/src/test/java/com/baeldung/vavrvalidation/validator/ValidationTest.java
+++ b/vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java
@@ -11,7 +11,7 @@ import io.vavr.control.Either.Right;
import io.vavr.control.Validation.Invalid;
import io.vavr.control.Validation.Valid;
-public class ValidationTest {
+public class ValidationUnitTest {
private static UserValidator userValidator;
diff --git a/video-tutorials/jackson-annotations/pom.xml b/video-tutorials/jackson-annotations/pom.xml
index 121609ad4d..b0e1c7e8d9 100644
--- a/video-tutorials/jackson-annotations/pom.xml
+++ b/video-tutorials/jackson-annotations/pom.xml
@@ -138,7 +138,7 @@
- 2.8.5
+ 2.9.7
2.9.6