diff --git a/core-java-modules/core-java-jpms/README.md b/core-java-modules/core-java-jpms/README.md
new file mode 100644
index 0000000000..5c424711bc
--- /dev/null
+++ b/core-java-modules/core-java-jpms/README.md
@@ -0,0 +1,3 @@
+### Relevant Articles
+
+- [Design Strategies for Decoupling Java Modules](https://www.baeldung.com/java-modules-decoupling-design-strategies)
diff --git a/core-java-modules/core-java-lang-operators/pom.xml b/core-java-modules/core-java-lang-operators/pom.xml
new file mode 100644
index 0000000000..58cab9d507
--- /dev/null
+++ b/core-java-modules/core-java-lang-operators/pom.xml
@@ -0,0 +1,43 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-lang-operators
+ 0.1.0-SNAPSHOT
+ core-java-lang-operators
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../../parent-java
+
+
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+
+
+ core-java-lang-operators
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ 3.10.0
+
+
+
diff --git a/core-java-modules/core-java-lang-operators/src/test/java/com/baeldung/incrementdecrementunaryoperators/IncrementDecrementUnaryOperatorUnitTest.java b/core-java-modules/core-java-lang-operators/src/test/java/com/baeldung/incrementdecrementunaryoperators/IncrementDecrementUnaryOperatorUnitTest.java
new file mode 100644
index 0000000000..8fbc2eeab8
--- /dev/null
+++ b/core-java-modules/core-java-lang-operators/src/test/java/com/baeldung/incrementdecrementunaryoperators/IncrementDecrementUnaryOperatorUnitTest.java
@@ -0,0 +1,64 @@
+package com.baeldung.incrementdecrementunaryoperators;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Test;
+
+public class IncrementDecrementUnaryOperatorUnitTest {
+
+ @Test
+ public void givenAnOperand_whenUsingPreIncrementUnaryOperator_thenOperandIsIncrementedByOne() {
+ int operand = 1;
+ ++operand;
+ assertThat(operand).isEqualTo(2);
+ }
+
+ @Test
+ public void givenANumber_whenUsingPreIncrementUnaryOperatorInEvaluation_thenNumberIsIncrementedByOne() {
+ int operand = 1;
+ int number = ++operand;
+ assertThat(number).isEqualTo(2);
+ }
+
+ @Test
+ public void givenAnOperand_whenUsingPreDecrementUnaryOperator_thenOperandIsDecrementedByOne() {
+ int operand = 1;
+ --operand;
+ assertThat(operand).isEqualTo(0);
+ }
+
+ @Test
+ public void givenANumber_whenUsingPreDecrementUnaryOperatorInEvaluation_thenNumberIsDecrementedByOne() {
+ int operand = 1;
+ int number = --operand;
+ assertThat(number).isEqualTo(0);
+ }
+
+ @Test
+ public void givenAnOperand_whenUsingPostIncrementUnaryOperator_thenOperandIsIncrementedByOne() {
+ int operand = 1;
+ operand++;
+ assertThat(operand).isEqualTo(2);
+ }
+
+ @Test
+ public void givenANumber_whenUsingPostIncrementUnaryOperatorInEvaluation_thenNumberIsSameAsOldValue() {
+ int operand = 1;
+ int number = operand++;
+ assertThat(number).isEqualTo(1);
+ }
+
+ @Test
+ public void givenAnOperand_whenUsingPostDecrementUnaryOperator_thenOperandIsDecrementedByOne() {
+ int operand = 1;
+ operand--;
+ assertThat(operand).isEqualTo(0);
+ }
+
+ @Test
+ public void givenANumber_whenUsingPostDecrementUnaryOperatorInEvaluation_thenNumberIsSameAsOldValue() {
+ int operand = 1;
+ int number = operand--;
+ assertThat(number).isEqualTo(1);
+ }
+}
diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml
index 2dca62005d..ecf1f4147e 100644
--- a/core-java-modules/pom.xml
+++ b/core-java-modules/pom.xml
@@ -17,6 +17,7 @@
pre-jpms
core-java-exceptions
core-java-optional
+ core-java-lang-operators
core-java-networking-2
diff --git a/data-structures/README.md b/data-structures/README.md
index 2d92068390..5ea9657173 100644
--- a/data-structures/README.md
+++ b/data-structures/README.md
@@ -1,4 +1,5 @@
## Relevant articles:
-[The Trie Data Structure in Java](https://www.baeldung.com/trie-java)
-[Implementing a Binary Tree in Java](https://www.baeldung.com/java-binary-tree)
+- [The Trie Data Structure in Java](https://www.baeldung.com/trie-java)
+- [Implementing a Binary Tree in Java](https://www.baeldung.com/java-binary-tree)
+- [Depth First Search in Java](https://www.baeldung.com/java-depth-first-search)
diff --git a/persistence-modules/java-cassandra/pom.xml b/persistence-modules/java-cassandra/pom.xml
index 708d2b3c76..e7c93bc4e5 100644
--- a/persistence-modules/java-cassandra/pom.xml
+++ b/persistence-modules/java-cassandra/pom.xml
@@ -4,7 +4,7 @@
com.baeldung
java-cassandra
1.0.0-SNAPSHOT
- java-cassandra
+ java-cassandra
com.baeldung
@@ -29,6 +29,19 @@
${cassandra-unit.version}
+
+
+ com.datastax.oss
+ java-driver-core
+ ${datastax-cassandra.version}
+
+
+
+ io.netty
+ netty-handler
+ ${io-netty.version}
+
+
@@ -39,6 +52,8 @@
3.1.2
3.1.1.0
+ 4.1.0
+ 4.1.34.Final
18.0
diff --git a/persistence-modules/java-cassandra/src/main/java/com/baeldung/datastax/cassandra/Application.java b/persistence-modules/java-cassandra/src/main/java/com/baeldung/datastax/cassandra/Application.java
new file mode 100644
index 0000000000..23140e0455
--- /dev/null
+++ b/persistence-modules/java-cassandra/src/main/java/com/baeldung/datastax/cassandra/Application.java
@@ -0,0 +1,46 @@
+package com.baeldung.datastax.cassandra;
+
+import com.baeldung.datastax.cassandra.domain.Video;
+import com.baeldung.datastax.cassandra.repository.KeyspaceRepository;
+import com.baeldung.datastax.cassandra.repository.VideoRepository;
+import com.datastax.oss.driver.api.core.CqlSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.List;
+
+public class Application {
+
+ private static final Logger LOG = LoggerFactory.getLogger(Application.class);
+
+ public static void main(String[] args) {
+ new Application().run();
+ }
+
+ public void run() {
+ CassandraConnector connector = new CassandraConnector();
+ connector.connect("127.0.0.1", 9042, "datacenter1");
+ CqlSession session = connector.getSession();
+
+ KeyspaceRepository keyspaceRepository = new KeyspaceRepository(session);
+
+ keyspaceRepository.createKeyspace("testKeyspace", "SimpleStrategy", 1);
+ keyspaceRepository.useKeyspace("testKeyspace");
+
+ VideoRepository videoRepository = new VideoRepository(session);
+
+ videoRepository.createTable();
+
+ videoRepository.insertVideo(new Video("Video Title 1", Instant.now()));
+ videoRepository.insertVideo(new Video("Video Title 2",
+ Instant.now().minus(1, ChronoUnit.DAYS)));
+
+ List