From 84d52773590ccfebf81c1398ad0ae5cc5bb3f641 Mon Sep 17 00:00:00 2001
From: sam-gardner <53271849+sam-gardner@users.noreply.github.com>
Date: Tue, 9 Apr 2024 07:22:57 +0100
Subject: [PATCH 1/8] [JAVA-27821] Upgrade Azure to Spring Boot 3 (#16304)
---
azure/pom.xml | 14 +++++++++++---
.../java/com/baeldung/springboot/azure/User.java | 8 ++++----
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/azure/pom.xml b/azure/pom.xml
index 61ae0c7d68..52d7fa4864 100644
--- a/azure/pom.xml
+++ b/azure/pom.xml
@@ -11,9 +11,9 @@
com.baeldung
- parent-boot-2
+ parent-boot-3
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../parent-boot-3
@@ -98,7 +98,7 @@
spring.datasource.password
-
+ test
@@ -113,6 +113,14 @@
+
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.4.0-b180830.0359
+
+
diff --git a/azure/src/main/java/com/baeldung/springboot/azure/User.java b/azure/src/main/java/com/baeldung/springboot/azure/User.java
index d7a25aa246..1e7954d9b0 100644
--- a/azure/src/main/java/com/baeldung/springboot/azure/User.java
+++ b/azure/src/main/java/com/baeldung/springboot/azure/User.java
@@ -1,9 +1,9 @@
package com.baeldung.springboot.azure;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
/**
* @author aiet
From eead7a451cf424e21c46228f2c605b479fc778b6 Mon Sep 17 00:00:00 2001
From: Harry9656
Date: Tue, 9 Apr 2024 08:35:21 +0200
Subject: [PATCH 2/8] [JAVA-32874] Fix Errors related to Maven upgrade (#16331)
---
image-processing/pom.xml | 7 +++++++
maven-modules/maven-plugins/jaxws/pom.xml | 8 ++++++--
microservices-modules/msf4j/pom.xml | 9 ++++++++-
web-modules/jee-7/pom.xml | 7 +++++++
4 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/image-processing/pom.xml b/image-processing/pom.xml
index 5c59a53337..b40c56e539 100644
--- a/image-processing/pom.xml
+++ b/image-processing/pom.xml
@@ -12,6 +12,13 @@
1.0.0-SNAPSHOT
+
+
+ maven
+ https://maven.openimaj.org/
+
+
+
net.imagej
diff --git a/maven-modules/maven-plugins/jaxws/pom.xml b/maven-modules/maven-plugins/jaxws/pom.xml
index f17d70c182..a30fca8c87 100644
--- a/maven-modules/maven-plugins/jaxws/pom.xml
+++ b/maven-modules/maven-plugins/jaxws/pom.xml
@@ -36,7 +36,7 @@
com.sun.xml.ws
jaxws-ri
- 2.3.0
+ ${jaxws.version}
pom
@@ -46,7 +46,7 @@
com.sun.xml.ws
jaxws-maven-plugin
- 4.0.1
+ ${jaxws.version}
@@ -73,4 +73,8 @@
+
+ 4.0.2
+
+
\ No newline at end of file
diff --git a/microservices-modules/msf4j/pom.xml b/microservices-modules/msf4j/pom.xml
index 642795e5fe..6d6315903b 100644
--- a/microservices-modules/msf4j/pom.xml
+++ b/microservices-modules/msf4j/pom.xml
@@ -14,6 +14,13 @@
1.0.0-SNAPSHOT
+
+
+ wso2-https
+ https://maven.wso2.org/nexus/content/groups/wso2-public/
+
+
+
@@ -40,7 +47,7 @@
com.baeldung.msf4j.msf4jintro.Application
- 2.6.3
+ 2.8.11
\ No newline at end of file
diff --git a/web-modules/jee-7/pom.xml b/web-modules/jee-7/pom.xml
index b26027d9bf..47d79f12ac 100644
--- a/web-modules/jee-7/pom.xml
+++ b/web-modules/jee-7/pom.xml
@@ -16,6 +16,13 @@
1.0.0-SNAPSHOT
+
+
+ jboss-https
+ https://repository.jboss.org/nexus/content/groups/public/
+
+
+
From e4c43225b93bed075d5edca626351b9bc372a9d4 Mon Sep 17 00:00:00 2001
From: Graham Cox
Date: Tue, 9 Apr 2024 07:59:09 +0100
Subject: [PATCH 3/8] BAEL-7335: Polymorphism with Gson (#16320)
---
.../com/baeldung/gson/polymorphic/Shape.java | 5 +
.../gson/polymorphic/ShapeTypeAdapter.java | 27 ++++
.../gson/polymorphic/TypeAdapterUnitTest.java | 117 ++++++++++++++
.../gson/polymorphic/TypeFieldUnitTest.java | 67 ++++++++
.../gson/polymorphic/WrapperUnitTest.java | 148 ++++++++++++++++++
5 files changed, 364 insertions(+)
create mode 100644 json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/Shape.java
create mode 100644 json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/ShapeTypeAdapter.java
create mode 100644 json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeAdapterUnitTest.java
create mode 100644 json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeFieldUnitTest.java
create mode 100644 json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/WrapperUnitTest.java
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/Shape.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/Shape.java
new file mode 100644
index 0000000000..b5d32a529b
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/Shape.java
@@ -0,0 +1,5 @@
+package com.baeldung.gson.polymorphic;
+
+public interface Shape {
+ double getArea();
+}
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/ShapeTypeAdapter.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/ShapeTypeAdapter.java
new file mode 100644
index 0000000000..cbdff9c6be
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/ShapeTypeAdapter.java
@@ -0,0 +1,27 @@
+package com.baeldung.gson.polymorphic;
+
+import com.google.gson.*;
+
+import java.lang.reflect.Type;
+
+public class ShapeTypeAdapter implements JsonSerializer, JsonDeserializer {
+ @Override
+ public JsonElement serialize(Shape shape, Type type, JsonSerializationContext context) {
+ JsonElement elem = new Gson().toJsonTree(shape);
+ elem.getAsJsonObject().addProperty("type", shape.getClass().getName());
+ return elem;
+ }
+
+ @Override
+ public Shape deserialize(JsonElement json, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
+ JsonObject jsonObject = json.getAsJsonObject();
+ String typeName = jsonObject.get("type").getAsString();
+
+ try {
+ Class extends Shape> cls = (Class extends Shape>) Class.forName(typeName);
+ return new Gson().fromJson(json, cls);
+ } catch (ClassNotFoundException e) {
+ throw new JsonParseException(e);
+ }
+ }
+}
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeAdapterUnitTest.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeAdapterUnitTest.java
new file mode 100644
index 0000000000..81d5f5a9f2
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeAdapterUnitTest.java
@@ -0,0 +1,117 @@
+package com.baeldung.gson.polymorphic;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+import org.junit.jupiter.api.Test;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class TypeAdapterUnitTest {
+ @Test
+ void testSerialize() {
+ List shapes = Arrays.asList(
+ new Circle(4d),
+ new Square(5d)
+ );
+
+ GsonBuilder builder = new GsonBuilder();
+ builder.registerTypeHierarchyAdapter(Shape.class, new ShapeTypeAdapter());
+ Gson gson = builder.create();
+
+ String json = gson.toJson(shapes);
+
+ assertEquals("[" +
+ "{" +
+ "\"radius\":4.0," +
+ "\"area\":50.26548245743669," +
+ "\"type\":\"com.baeldung.gson.polymorphic.TypeAdapterUnitTest$Circle\"" +
+ "},{" +
+ "\"side\":5.0," +
+ "\"area\":25.0," +
+ "\"type\":\"com.baeldung.gson.polymorphic.TypeAdapterUnitTest$Square\"" +
+ "}]", json);
+ }
+
+
+ @Test
+ void testDeserializeWrapper() {
+ List shapes = Arrays.asList(
+ new Circle(4d),
+ new Square(5d)
+ );
+
+ GsonBuilder builder = new GsonBuilder();
+ builder.registerTypeHierarchyAdapter(Shape.class, new ShapeTypeAdapter());
+ Gson gson = builder.create();
+
+ String json = gson.toJson(shapes);
+
+ Type collectionType = new TypeToken>(){}.getType();
+ List result = gson.fromJson(json, collectionType);
+
+ assertEquals(shapes, result);
+ }
+
+ private static class Square implements Shape {
+ private final double side;
+ private final double area;
+
+ public Square(double side) {
+ this.side = side;
+ this.area = side * side;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Square square = (Square) o;
+ return Double.compare(square.side, side) == 0 && Double.compare(square.area, area) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(side, area);
+ }
+ }
+
+ private static class Circle implements Shape {
+ private final double radius;
+
+ private final double area;
+
+ public Circle(double radius) {
+ this.radius = radius;
+ this.area = Math.PI * radius * radius;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Circle circle = (Circle) o;
+ return Double.compare(circle.radius, radius) == 0 && Double.compare(circle.area, area) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(radius, area);
+ }
+ }
+}
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeFieldUnitTest.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeFieldUnitTest.java
new file mode 100644
index 0000000000..e6917b2065
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/TypeFieldUnitTest.java
@@ -0,0 +1,67 @@
+package com.baeldung.gson.polymorphic;
+
+import com.google.gson.Gson;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class TypeFieldUnitTest {
+ @Test
+ void testSerialize() {
+ List shapes = Arrays.asList(
+ new Circle(4d),
+ new Square(5d)
+ );
+
+ Gson gson = new Gson();
+ String json = gson.toJson(shapes);
+
+ assertEquals("[" +
+ "{" +
+ "\"type\":\"circle\"," +
+ "\"radius\":4.0," +
+ "\"area\":50.26548245743669" +
+ "},{" +
+ "\"type\":\"square\"," +
+ "\"side\":5.0," +
+ "\"area\":25.0" +
+ "}]", json);
+ }
+
+ private static class Square implements Shape {
+ private final String type = "square";
+ private final double side;
+ private final double area;
+
+ public Square(double side) {
+ this.side = side;
+ this.area = side * side;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+ }
+
+ private static class Circle implements Shape {
+ private final String type = "circle";
+ private final double radius;
+
+ private final double area;
+
+ public Circle(double radius) {
+ this.radius = radius;
+ this.area = Math.PI * radius * radius;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+ }
+
+}
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/WrapperUnitTest.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/WrapperUnitTest.java
new file mode 100644
index 0000000000..841f9c64d5
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/polymorphic/WrapperUnitTest.java
@@ -0,0 +1,148 @@
+package com.baeldung.gson.polymorphic;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.junit.jupiter.api.Test;
+
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class WrapperUnitTest {
+ @Test
+ void testSerializeWrapper() {
+ List shapes = Arrays.asList(
+ new Wrapper(new Circle(4d)),
+ new Wrapper(new Square(5d))
+ );
+
+ Gson gson = new Gson();
+ String json = gson.toJson(shapes);
+
+ assertEquals("[" +
+ "{" +
+ "\"circle\":{" +
+ "\"radius\":4.0," +
+ "\"area\":50.26548245743669" +
+ "}" +
+ "},{" +
+ "\"square\":{" +
+ "\"side\":5.0," +
+ "\"area\":25.0" +
+ "}" +
+ "}]", json);
+ }
+
+ @Test
+ void testDeserializeWrapper() {
+ List shapes = Arrays.asList(
+ new Wrapper(new Circle(4d)),
+ new Wrapper(new Square(5d))
+ );
+
+ Gson gson = new Gson();
+ String json = gson.toJson(shapes);
+
+ Type collectionType = new TypeToken>(){}.getType();
+ List result = gson.fromJson(json, collectionType);
+
+ assertEquals(shapes, result);
+ }
+
+ private static class Square implements Shape {
+ private final double side;
+ private final double area;
+
+ public Square(double side) {
+ this.side = side;
+ this.area = side * side;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Square square = (Square) o;
+ return Double.compare(square.side, side) == 0 && Double.compare(square.area, area) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(side, area);
+ }
+ }
+
+ private static class Circle implements Shape {
+ private final double radius;
+
+ private final double area;
+
+ public Circle(double radius) {
+ this.radius = radius;
+ this.area = Math.PI * radius * radius;
+ }
+
+ @Override
+ public double getArea() {
+ return area;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Circle circle = (Circle) o;
+ return Double.compare(circle.radius, radius) == 0 && Double.compare(circle.area, area) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(radius, area);
+ }
+ }
+
+ private static class Wrapper {
+ private final Circle circle;
+ private final Square square;
+
+ public Wrapper(Circle circle) {
+ this.circle = circle;
+ this.square = null;
+ }
+
+ public Wrapper(Square square) {
+ this.square = square;
+ this.circle = null;
+ }
+
+ public Circle getCircle() {
+ return circle;
+ }
+
+ public Square getSquare() {
+ return square;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Wrapper wrapper = (Wrapper) o;
+ return Objects.equals(circle, wrapper.circle) && Objects.equals(square, wrapper.square);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(circle, square);
+ }
+ }
+
+}
From 27e451cd97d6382d0d0e0f1a5c60dc864dd38b68 Mon Sep 17 00:00:00 2001
From: Loredana Crusoveanu
Date: Tue, 9 Apr 2024 19:23:47 +0300
Subject: [PATCH 4/8] Update README.md
---
core-java-modules/core-java-io-apis/README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/core-java-modules/core-java-io-apis/README.md b/core-java-modules/core-java-io-apis/README.md
index ee8547f0c5..faf7067f74 100644
--- a/core-java-modules/core-java-io-apis/README.md
+++ b/core-java-modules/core-java-io-apis/README.md
@@ -13,4 +13,3 @@ This module contains articles about core Java input/output(IO) APIs.
- [Difference Between FileReader and BufferedReader in Java](https://www.baeldung.com/java-filereader-vs-bufferedreader)
- [Read Multiple Inputs on the Same Line in Java](https://www.baeldung.com/java-read-multiple-inputs-same-line)
- [Write Console Output to Text File in Java](https://www.baeldung.com/java-write-console-output-file)
-- [Java InputStream vs. InputStreamReader](https://www.baeldung.com/java-inputstream-vs-inputstreamreader)
From 9dc160cccaadee34f90e1fb5d46f6099e0d8ab2b Mon Sep 17 00:00:00 2001
From: Loredana Crusoveanu
Date: Tue, 9 Apr 2024 19:24:00 +0300
Subject: [PATCH 5/8] Update README.md
---
core-java-modules/core-java-io-apis-2/README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/core-java-modules/core-java-io-apis-2/README.md b/core-java-modules/core-java-io-apis-2/README.md
index 2b08736a11..c8472f088e 100644
--- a/core-java-modules/core-java-io-apis-2/README.md
+++ b/core-java-modules/core-java-io-apis-2/README.md
@@ -12,3 +12,4 @@ This module contains articles about core Java input/output(IO) APIs.
- [Read Input Character-by-Character in Java](https://www.baeldung.com/java-read-input-character)
- [Difference Between flush() and close() in Java FileWriter](https://www.baeldung.com/java-filewriter-flush-vs-close)
- [Get a Path to a Resource in a Java JAR File](https://www.baeldung.com/java-get-path-resource-jar)
+- [Java InputStream vs. InputStreamReader](https://www.baeldung.com/java-inputstream-vs-inputstreamreader)
From eea7bccf8657e4feaf2814c94667f5eb0b7e09d9 Mon Sep 17 00:00:00 2001
From: vunamtien
Date: Wed, 10 Apr 2024 04:16:14 +0700
Subject: [PATCH 6/8] [JAVA-31831] Split-or-move-core-java-8-datetime-2
(#16325)
---
.../core-java-8-datetime-2/README.md | 7 +-
.../core-java-8-datetime-3/README.md | 8 ++
.../core-java-8-datetime-3/pom.xml | 55 ++++++++++++
.../DateRangeOverlapChecker.java | 6 +-
.../localdatetoiso/LocalDateToISO.java | 14 ++-
.../MonthInterval.java | 0
.../CheckIfTimeBetweenTwoTimesUnitTest.java | 88 +++++++++----------
.../DateRangeOverlapCheckerUnitTest.java | 8 +-
.../LocalDateToISOUnitTest.java | 16 ++--
.../MonthIntervalUnitTest.java | 0
.../ZoneOffSetAndZoneIdOfUnitTest.java | 50 +++++------
11 files changed, 154 insertions(+), 98 deletions(-)
create mode 100644 core-java-modules/core-java-8-datetime-3/README.md
create mode 100644 core-java-modules/core-java-8-datetime-3/pom.xml
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java (100%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java (92%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java (100%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java (97%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java (100%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java (81%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java (100%)
rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java (96%)
diff --git a/core-java-modules/core-java-8-datetime-2/README.md b/core-java-modules/core-java-8-datetime-2/README.md
index 04461663e3..29ceaf29e1 100644
--- a/core-java-modules/core-java-8-datetime-2/README.md
+++ b/core-java-modules/core-java-8-datetime-2/README.md
@@ -9,9 +9,4 @@
- [Round the Date in Java](https://www.baeldung.com/java-round-the-date)
- [Representing Furthest Possible Date in Java](https://www.baeldung.com/java-date-represent-max)
- [Retrieving Unix Time in Java](https://www.baeldung.com/java-retrieve-unix-time)
-- [Calculate Months Between Two Dates in Java](https://www.baeldung.com/java-months-difference-two-dates)
-- [Format LocalDate to ISO 8601 With T and Z](https://www.baeldung.com/java-format-localdate-iso-8601-t-z)
-- [Check if Two Date Ranges Overlap](https://www.baeldung.com/java-check-two-date-ranges-overlap)
-- [Difference between ZoneOffset.UTC and ZoneId.of(“UTC”)](https://www.baeldung.com/java-zoneoffset-utc-zoneid-of)
-- [Check if a Given Time Lies Between Two Times Regardless of Date](https://www.baeldung.com/java-check-between-two-times)
-- [[<-- Prev]](/core-java-modules/core-java-datetime-java8-1)
+- [[<-- Prev]](/core-java-modules/core-java-datetime-java8-1) [[Next -->]](/core-java-modules/core-java-8-datetime-3)
diff --git a/core-java-modules/core-java-8-datetime-3/README.md b/core-java-modules/core-java-8-datetime-3/README.md
new file mode 100644
index 0000000000..d320466814
--- /dev/null
+++ b/core-java-modules/core-java-8-datetime-3/README.md
@@ -0,0 +1,8 @@
+### Relevant Articles:
+
+- [Calculate Months Between Two Dates in Java](https://www.baeldung.com/java-months-difference-two-dates)
+- [Format LocalDate to ISO 8601 With T and Z](https://www.baeldung.com/java-format-localdate-iso-8601-t-z)
+- [Check if Two Date Ranges Overlap](https://www.baeldung.com/java-check-two-date-ranges-overlap)
+- [Difference between ZoneOffset.UTC and ZoneId.of(“UTC”)](https://www.baeldung.com/java-zoneoffset-utc-zoneid-of)
+- [Check if a Given Time Lies Between Two Times Regardless of Date](https://www.baeldung.com/java-check-between-two-times)
+- [[<-- Prev]](/core-java-modules/core-java-8-datetime-2)
diff --git a/core-java-modules/core-java-8-datetime-3/pom.xml b/core-java-modules/core-java-8-datetime-3/pom.xml
new file mode 100644
index 0000000000..4e32190fcf
--- /dev/null
+++ b/core-java-modules/core-java-8-datetime-3/pom.xml
@@ -0,0 +1,55 @@
+
+
+ 4.0.0
+ core-java-8-datetime-3
+ jar
+ core-java-8-datetime-3
+
+
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ joda-time
+ joda-time
+ ${joda-time.version}
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+
+
+
+ 1.8
+ 1.8
+ 2.12.5
+
+
+
\ No newline at end of file
diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java
similarity index 100%
rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java
rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java
index 9b898c87f5..9fbe4bc7fe 100644
--- a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java
+++ b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java
@@ -1,11 +1,11 @@
package com.baeldung.daterangeoverlap;
-import java.time.LocalDate;
-import java.util.Calendar;
-
import org.joda.time.DateTime;
import org.joda.time.Interval;
+import java.time.LocalDate;
+import java.util.Calendar;
+
public class DateRangeOverlapChecker {
public static boolean isOverlapUsingCalendarAndDuration(Calendar start1, Calendar end1, Calendar start2, Calendar end2) {
diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java
similarity index 92%
rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java
rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java
index e09d823ce4..adf6c09107 100644
--- a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java
+++ b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java
@@ -1,20 +1,16 @@
package com.baeldung.localdatetoiso;
+import org.apache.commons.lang3.time.FastDateFormat;
+import org.joda.time.DateTimeZone;
+import org.joda.time.format.ISODateTimeFormat;
+
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Date;
-
-import org.apache.commons.lang3.time.DateFormatUtils;
-
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.ISODateTimeFormat;
-
-import org.apache.commons.lang3.time.FastDateFormat;
+import java.util.TimeZone;
public class LocalDateToISO {
public String formatUsingDateTimeFormatter(LocalDate localDate) {
diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java
similarity index 100%
rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java
rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java
diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java
similarity index 97%
rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java
rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java
index 1ffddaa241..e2f526947e 100644
--- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java
+++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java
@@ -1,45 +1,45 @@
-package com.baeldung.checkiftimebetweentwotimes;
-
-import org.junit.Test;
-
-import java.time.LocalTime;
-import java.util.Calendar;
-import java.util.Date;
-
-import static org.junit.Assert.assertTrue;
-
-public class CheckIfTimeBetweenTwoTimesUnitTest {
- private LocalTime startTime = LocalTime.parse("09:00:00");
- private LocalTime endTime = LocalTime.parse("17:00:00");
- private LocalTime targetTime = LocalTime.parse("12:30:00");
-
- @Test
- public void givenLocalTime_whenUsingIsAfterIsBefore_thenTimeIsBetween() {
- assertTrue(!targetTime.isBefore(startTime) && !targetTime.isAfter(endTime));
- }
-
- @Test
- public void givenLocalTime_whenUsingCompareTo_thenTimeIsBetween() {
- assertTrue(targetTime.compareTo(startTime) >= 0 && targetTime.compareTo(endTime) <= 0);
- }
-
- @Test
- public void givenDate_whenUsingAfterBefore_thenTimeIsBetween() {
- Calendar startCalendar = Calendar.getInstance();
- startCalendar.set(Calendar.HOUR_OF_DAY, 9);
- startCalendar.set(Calendar.MINUTE, 0);
- Date startTime = startCalendar.getTime();
-
- Calendar endCalendar = Calendar.getInstance();
- endCalendar.set(Calendar.HOUR_OF_DAY, 17);
- endCalendar.set(Calendar.MINUTE, 0);
- Date endTime = endCalendar.getTime();
-
- Calendar targetCalendar = Calendar.getInstance();
- targetCalendar.set(Calendar.HOUR_OF_DAY, 12);
- targetCalendar.set(Calendar.MINUTE, 30);
- Date targetTime = targetCalendar.getTime();
-
- assertTrue(!targetTime.before(startTime) && !targetTime.after(endTime));
- }
+package com.baeldung.checkiftimebetweentwotimes;
+
+import org.junit.Test;
+
+import java.time.LocalTime;
+import java.util.Calendar;
+import java.util.Date;
+
+import static org.junit.Assert.assertTrue;
+
+public class CheckIfTimeBetweenTwoTimesUnitTest {
+ private LocalTime startTime = LocalTime.parse("09:00:00");
+ private LocalTime endTime = LocalTime.parse("17:00:00");
+ private LocalTime targetTime = LocalTime.parse("12:30:00");
+
+ @Test
+ public void givenLocalTime_whenUsingIsAfterIsBefore_thenTimeIsBetween() {
+ assertTrue(!targetTime.isBefore(startTime) && !targetTime.isAfter(endTime));
+ }
+
+ @Test
+ public void givenLocalTime_whenUsingCompareTo_thenTimeIsBetween() {
+ assertTrue(targetTime.compareTo(startTime) >= 0 && targetTime.compareTo(endTime) <= 0);
+ }
+
+ @Test
+ public void givenDate_whenUsingAfterBefore_thenTimeIsBetween() {
+ Calendar startCalendar = Calendar.getInstance();
+ startCalendar.set(Calendar.HOUR_OF_DAY, 9);
+ startCalendar.set(Calendar.MINUTE, 0);
+ Date startTime = startCalendar.getTime();
+
+ Calendar endCalendar = Calendar.getInstance();
+ endCalendar.set(Calendar.HOUR_OF_DAY, 17);
+ endCalendar.set(Calendar.MINUTE, 0);
+ Date endTime = endCalendar.getTime();
+
+ Calendar targetCalendar = Calendar.getInstance();
+ targetCalendar.set(Calendar.HOUR_OF_DAY, 12);
+ targetCalendar.set(Calendar.MINUTE, 30);
+ Date targetTime = targetCalendar.getTime();
+
+ assertTrue(!targetTime.before(startTime) && !targetTime.after(endTime));
+ }
}
\ No newline at end of file
diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java
rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java
index 5811cb6552..fa8145f71c 100644
--- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java
+++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java
@@ -1,13 +1,13 @@
package com.baeldung.daterangeoverlap;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import org.joda.time.DateTime;
+import org.junit.Test;
import java.time.LocalDate;
import java.util.Calendar;
-import org.joda.time.DateTime;
-import org.junit.Test;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
public class DateRangeOverlapCheckerUnitTest {
diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java
similarity index 81%
rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java
rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java
index 1979c91eca..c82cc2766d 100644
--- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java
+++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java
@@ -1,13 +1,14 @@
package com.baeldung.localdatetoiso;
+import org.junit.Test;
+
+import java.time.LocalDate;
+
import static org.junit.Assert.assertEquals;
-import org.junit.Test;
-import java.time.LocalDate;
-
public class LocalDateToISOUnitTest {
@Test
- void givenLocalDate_whenUsingDateTimeFormatter_thenISOFormat(){
+ public void givenLocalDate_whenUsingDateTimeFormatter_thenISOFormat(){
LocalDateToISO localDateToISO = new LocalDateToISO();
LocalDate localDate = LocalDate.of(2023, 11, 6);
@@ -17,7 +18,7 @@ public class LocalDateToISOUnitTest {
}
@Test
- void givenLocalDate_whenUsingSimpleDateFormat_thenISOFormat(){
+ public void givenLocalDate_whenUsingSimpleDateFormat_thenISOFormat(){
LocalDateToISO localDateToISO = new LocalDateToISO();
LocalDate localDate = LocalDate.of(2023, 11, 6);
@@ -27,17 +28,18 @@ public class LocalDateToISOUnitTest {
}
@Test
- void givenLocalDate_whenUsingJodaTime_thenISOFormat() {
+ public void givenLocalDate_whenUsingJodaTime_thenISOFormat() {
LocalDateToISO localDateToISO = new LocalDateToISO();
org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(2023, 11, 6);
String expected = "2023-11-06T00:00:00.000Z";
String actual = localDateToISO.formatUsingJodaTime(localDate);
assertEquals(expected, actual);
+ assertEquals(expected, actual);
}
@Test
- void givenLocalDate_whenUsingApacheCommonsLang_thenISOFormat() {
+ public void givenLocalDate_whenUsingApacheCommonsLang_thenISOFormat() {
LocalDateToISO localDateToISO = new LocalDateToISO();
LocalDate localDate = LocalDate.of(2023, 11, 6);
diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java
rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java
diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java
similarity index 96%
rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java
rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java
index 84f40c3cd5..298963fd70 100644
--- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java
+++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java
@@ -1,25 +1,25 @@
-package com.baeldung.zoneoffsetandzoneidof;
-
-import org.junit.jupiter.api.Test;
-
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class ZoneOffSetAndZoneIdOfUnitTest {
-
- @Test
- public void givenOffsetDateTimeWithUTCZoneOffset_thenOffsetShouldBeUTC() {
- OffsetDateTime dateTimeWithOffset = OffsetDateTime.now(ZoneOffset.UTC);
- assertEquals(dateTimeWithOffset.getOffset(), ZoneOffset.UTC);
- }
-
- @Test
- public void givenZonedDateTimeWithUTCZoneId_thenZoneShouldBeUTC() {
- ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC"));
- assertEquals(zonedDateTime.getZone(), ZoneId.of("UTC"));
- }
-}
+package com.baeldung.zoneoffsetandzoneidof;
+
+import org.junit.jupiter.api.Test;
+
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class ZoneOffSetAndZoneIdOfUnitTest {
+
+ @Test
+ public void givenOffsetDateTimeWithUTCZoneOffset_thenOffsetShouldBeUTC() {
+ OffsetDateTime dateTimeWithOffset = OffsetDateTime.now(ZoneOffset.UTC);
+ assertEquals(dateTimeWithOffset.getOffset(), ZoneOffset.UTC);
+ }
+
+ @Test
+ public void givenZonedDateTimeWithUTCZoneId_thenZoneShouldBeUTC() {
+ ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC"));
+ assertEquals(zonedDateTime.getZone(), ZoneId.of("UTC"));
+ }
+}
From e812b299bdca48a59051c2893105bb4602a1e0c4 Mon Sep 17 00:00:00 2001
From: timis1 <12120641+timis1@users.noreply.github.com>
Date: Wed, 10 Apr 2024 01:03:56 +0300
Subject: [PATCH 7/8] JAVA-32783 Split or move algorithms-miscellaneous-7
(#16317)
Co-authored-by: timis1
---
algorithms-modules/algorithms-miscellaneous-7/README.md | 4 ----
.../test/java/com/baeldung/algorithms/connect4/README.md | 2 --
algorithms-modules/algorithms-miscellaneous-8/README.md | 6 ++++++
.../largestNumberRemovingK/LargestNumberRemoveKDigits.java | 2 +-
.../parentnodebinarytree/ParentKeeperTreeNode.java | 0
.../baeldung/algorithms/parentnodebinarytree/TreeNode.java | 0
.../java/com/baeldung/algorithms/connect4/GameBoard.java | 0
.../java/com/baeldung/algorithms/connect4/GameUnitTest.java | 0
.../test/java/com/baeldung/algorithms/connect4/Piece.java | 0
.../algorithms/happynumber/HappyNumberUnitTest.java | 0
.../algorithms/jugglersequence/JugglerSequenceUnitTest.java | 0
.../LargestNumberRemoveKDigitsUnitTest.java | 0
.../BinaryTreeParentNodeFinderUnitTest.java | 4 +++-
13 files changed, 10 insertions(+), 8 deletions(-)
delete mode 100644 algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/README.md
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java (98%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/main/java/com/baeldung/algorithms/parentnodebinarytree/ParentKeeperTreeNode.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/main/java/com/baeldung/algorithms/parentnodebinarytree/TreeNode.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/connect4/GameBoard.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/connect4/GameUnitTest.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/connect4/Piece.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/happynumber/HappyNumberUnitTest.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/jugglersequence/JugglerSequenceUnitTest.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigitsUnitTest.java (100%)
rename algorithms-modules/{algorithms-miscellaneous-7 => algorithms-miscellaneous-8}/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java (94%)
diff --git a/algorithms-modules/algorithms-miscellaneous-7/README.md b/algorithms-modules/algorithms-miscellaneous-7/README.md
index a08948eda5..266d79cdfa 100644
--- a/algorithms-modules/algorithms-miscellaneous-7/README.md
+++ b/algorithms-modules/algorithms-miscellaneous-7/README.md
@@ -10,8 +10,4 @@
- [Check if Two Strings Are Rotations of Each Other](https://www.baeldung.com/java-string-check-strings-rotations)
- [Find the Largest Prime Under the Given Number in Java](https://www.baeldung.com/java-largest-prime-lower-threshold)
- [Count the Number of Unique Digits in an Integer using Java](https://www.baeldung.com/java-int-count-unique-digits)
-- [Generate Juggler Sequence in Java](https://www.baeldung.com/java-generate-juggler-sequence)
-- [Finding the Parent of a Node in a Binary Search Tree with Java](https://www.baeldung.com/java-find-parent-node-binary-search-tree)
-- [Check if a Number Is a Happy Number in Java](https://www.baeldung.com/java-happy-sad-number-test)
-- [Find the Largest Number Possible After Removing k Digits of a Number](https://www.baeldung.com/java-find-largest-number-remove-k-digits)
- More articles: [[<-- prev]](/algorithms-miscellaneous-6)
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/README.md b/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/README.md
deleted file mode 100644
index 55bc2abec5..0000000000
--- a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## Relevant Articles
-- [Implement Connect 4 Game with Java](https://www.baeldung.com/java-connect-4-game)
diff --git a/algorithms-modules/algorithms-miscellaneous-8/README.md b/algorithms-modules/algorithms-miscellaneous-8/README.md
index e2c5047136..8bd185a7ba 100644
--- a/algorithms-modules/algorithms-miscellaneous-8/README.md
+++ b/algorithms-modules/algorithms-miscellaneous-8/README.md
@@ -1,3 +1,9 @@
### Relevant Articles:
- [Vigenère Cipher in Java](https://www.baeldung.com/java-vigenere-cipher)
- [Merge Overlapping Intervals in a Java Collection](https://www.baeldung.com/java-collection-merge-overlapping-intervals)
+- [Generate Juggler Sequence in Java](https://www.baeldung.com/java-generate-juggler-sequence)
+- [Finding the Parent of a Node in a Binary Search Tree with Java](https://www.baeldung.com/java-find-parent-node-binary-search-tree)
+- [Check if a Number Is a Happy Number in Java](https://www.baeldung.com/java-happy-sad-number-test)
+- [Find the Largest Number Possible After Removing k Digits of a Number](https://www.baeldung.com/java-find-largest-number-remove-k-digits)
+- [Implement Connect 4 Game with Java](https://www.baeldung.com/java-connect-4-game)
+- More articles: [[<-- prev]](/algorithms-miscellaneous-7)
\ No newline at end of file
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java
similarity index 98%
rename from algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java
index 79086fc61f..51e8350afc 100644
--- a/algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java
+++ b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigits.java
@@ -1,6 +1,6 @@
package com.baeldung.algorithms.largestNumberRemovingK;
-import java.util.*;
+import java.util.Stack;
public class LargestNumberRemoveKDigits {
public static int findLargestNumberUsingArithmetic(int num, int k) {
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/parentnodebinarytree/ParentKeeperTreeNode.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/parentnodebinarytree/ParentKeeperTreeNode.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/parentnodebinarytree/ParentKeeperTreeNode.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/parentnodebinarytree/ParentKeeperTreeNode.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/parentnodebinarytree/TreeNode.java b/algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/parentnodebinarytree/TreeNode.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/main/java/com/baeldung/algorithms/parentnodebinarytree/TreeNode.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/main/java/com/baeldung/algorithms/parentnodebinarytree/TreeNode.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/GameBoard.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/GameBoard.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/GameBoard.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/GameBoard.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/GameUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/GameUnitTest.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/GameUnitTest.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/GameUnitTest.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/Piece.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/Piece.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/connect4/Piece.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/connect4/Piece.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/happynumber/HappyNumberUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/happynumber/HappyNumberUnitTest.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/happynumber/HappyNumberUnitTest.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/happynumber/HappyNumberUnitTest.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/jugglersequence/JugglerSequenceUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/jugglersequence/JugglerSequenceUnitTest.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/jugglersequence/JugglerSequenceUnitTest.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/jugglersequence/JugglerSequenceUnitTest.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigitsUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigitsUnitTest.java
similarity index 100%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigitsUnitTest.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/largestNumberRemovingK/LargestNumberRemoveKDigitsUnitTest.java
diff --git a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java
similarity index 94%
rename from algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java
rename to algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java
index d3f0ec7997..ff31f99ed6 100644
--- a/algorithms-modules/algorithms-miscellaneous-7/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java
+++ b/algorithms-modules/algorithms-miscellaneous-8/src/test/java/com/baeldung/algorithms/parentnodebinarytree/BinaryTreeParentNodeFinderUnitTest.java
@@ -5,7 +5,9 @@ import org.junit.jupiter.api.Test;
import java.util.NoSuchElementException;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertNull;
class BinaryTreeParentNodeFinderUnitTest {
From a9f5f9fab50e3e6035532a99b1c7262c1a701a42 Mon Sep 17 00:00:00 2001
From: timis1 <12120641+timis1@users.noreply.github.com>
Date: Wed, 10 Apr 2024 02:24:50 +0300
Subject: [PATCH 8/8] JAVA-33597 Fix all modules here have incorrect parent
(#16324)
Co-authored-by: timis1
---
spring-boot-modules/spring-boot-3-2/pom.xml | 7 +++----
spring-boot-modules/spring-boot-3/pom.xml | 7 +++----
spring-boot-modules/spring-boot-aws/pom.xml | 7 +++----
.../spring-boot-basic-customization-3/pom.xml | 7 +++----
spring-boot-modules/spring-boot-data-3/pom.xml | 7 +++----
spring-boot-modules/spring-boot-groovy/pom.xml | 7 +++----
spring-boot-modules/spring-boot-libraries-3/pom.xml | 7 +++----
spring-boot-modules/spring-boot-swagger/pom.xml | 7 +++----
8 files changed, 24 insertions(+), 32 deletions(-)
diff --git a/spring-boot-modules/spring-boot-3-2/pom.xml b/spring-boot-modules/spring-boot-3-2/pom.xml
index 29d9332ca5..d427aff835 100644
--- a/spring-boot-modules/spring-boot-3-2/pom.xml
+++ b/spring-boot-modules/spring-boot-3-2/pom.xml
@@ -9,10 +9,9 @@
Demo project for Spring Boot
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-3/pom.xml b/spring-boot-modules/spring-boot-3/pom.xml
index ae9e9d7308..0c00a8af34 100644
--- a/spring-boot-modules/spring-boot-3/pom.xml
+++ b/spring-boot-modules/spring-boot-3/pom.xml
@@ -9,10 +9,9 @@
Demo project for Spring Boot
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-aws/pom.xml b/spring-boot-modules/spring-boot-aws/pom.xml
index 8be0b230cd..966dfec6fa 100644
--- a/spring-boot-modules/spring-boot-aws/pom.xml
+++ b/spring-boot-modules/spring-boot-aws/pom.xml
@@ -11,10 +11,9 @@
- org.springframework.boot
- spring-boot-starter-parent
- 3.1.5
-
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-basic-customization-3/pom.xml b/spring-boot-modules/spring-boot-basic-customization-3/pom.xml
index 1b09162cf4..9018b21e03 100644
--- a/spring-boot-modules/spring-boot-basic-customization-3/pom.xml
+++ b/spring-boot-modules/spring-boot-basic-customization-3/pom.xml
@@ -9,10 +9,9 @@
Module For Spring Boot Basic Customization 3
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-data-3/pom.xml b/spring-boot-modules/spring-boot-data-3/pom.xml
index 0d35da3a0a..c6cd426bb2 100644
--- a/spring-boot-modules/spring-boot-data-3/pom.xml
+++ b/spring-boot-modules/spring-boot-data-3/pom.xml
@@ -10,10 +10,9 @@
spring-boot-data-3
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-groovy/pom.xml b/spring-boot-modules/spring-boot-groovy/pom.xml
index 677e07db2d..b03bc3b004 100644
--- a/spring-boot-modules/spring-boot-groovy/pom.xml
+++ b/spring-boot-modules/spring-boot-groovy/pom.xml
@@ -10,10 +10,9 @@
Spring Boot Todo Application with Groovy
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-libraries-3/pom.xml b/spring-boot-modules/spring-boot-libraries-3/pom.xml
index e88ae4c078..223a39f1de 100644
--- a/spring-boot-modules/spring-boot-libraries-3/pom.xml
+++ b/spring-boot-modules/spring-boot-libraries-3/pom.xml
@@ -6,10 +6,9 @@
spring-boot-libraries-3
- com.baeldung
- parent-boot-3
- 0.0.1-SNAPSHOT
- ../../parent-boot-3
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT
diff --git a/spring-boot-modules/spring-boot-swagger/pom.xml b/spring-boot-modules/spring-boot-swagger/pom.xml
index bd74c3ea88..20dec5410c 100644
--- a/spring-boot-modules/spring-boot-swagger/pom.xml
+++ b/spring-boot-modules/spring-boot-swagger/pom.xml
@@ -10,10 +10,9 @@
Module For Spring Boot Swagger
- com.baeldung
- parent-boot-3
- ../../parent-boot-3
- 0.0.1-SNAPSHOT
+ com.baeldung.spring-boot-modules
+ spring-boot-modules
+ 1.0.0-SNAPSHOT