From e4249a62f8b4d8feab9d5ccc07ea6156955aa230 Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Wed, 30 Jul 2025 21:39:09 +0700 Subject: [PATCH 1/7] init jts operations implementations --- jts/pom.xml | 91 +++++++++++++++++++ .../java/com/baeldung/jts/JtsApplication.java | 12 +++ .../jts/operations/JTSOperationUtils.java | 57 ++++++++++++ .../jts/utils/GeometryFactoryUtil.java | 11 +++ jts/src/main/resources/application.properties | 1 + .../com/baeldung/jts/JtsApplicationTests.java | 69 ++++++++++++++ pom.xml | 1 + 7 files changed, 242 insertions(+) create mode 100644 jts/pom.xml create mode 100644 jts/src/main/java/com/baeldung/jts/JtsApplication.java create mode 100644 jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java create mode 100644 jts/src/main/java/com/baeldung/jts/utils/GeometryFactoryUtil.java create mode 100644 jts/src/main/resources/application.properties create mode 100644 jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java diff --git a/jts/pom.xml b/jts/pom.xml new file mode 100644 index 000000000000..b928e497555e --- /dev/null +++ b/jts/pom.xml @@ -0,0 +1,91 @@ + + 4.0.0 + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + + + com.baeldung.jts + jst-example + 1.0-SNAPSHOT + jar + + + 21 + 21 + 2.0.17 + 4.13.2 + 1.20.0 + 1.5.18 + + + + org.locationtech.jts + jts-core + ${jts.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + ch.qos.logback + logback-core + ${qos.logback.version} + + + ch.qos.logback + logback-classic + ${qos.logback.version} + + + + junit + junit + ${junit.version} + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + com.baeldung.jts.JtsApplication + + + + + + + + + \ No newline at end of file diff --git a/jts/src/main/java/com/baeldung/jts/JtsApplication.java b/jts/src/main/java/com/baeldung/jts/JtsApplication.java new file mode 100644 index 000000000000..e6931fd99bfd --- /dev/null +++ b/jts/src/main/java/com/baeldung/jts/JtsApplication.java @@ -0,0 +1,12 @@ +package com.baeldung.jts; + +import com.baeldung.jts.utils.GeometryFactoryUtil; +import org.locationtech.jts.geom.Geometry; + +public class JtsApplication { + + public static void main(String[] args) throws Exception { + + } + +} diff --git a/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java b/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java new file mode 100644 index 000000000000..25d50135e4c0 --- /dev/null +++ b/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java @@ -0,0 +1,57 @@ +package com.baeldung.jts.operations; + +import org.locationtech.jts.geom.Geometry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class JTSOperationUtils { + private static final Logger log = LoggerFactory.getLogger(JTSOperationUtils.class); + + public static boolean isContainment(Geometry point, Geometry polygon) { + boolean isInside = polygon.contains(point); + log.info("Is the point inside polygon? {}", isInside); + return isInside; + } + + public static boolean checkIntersect(Geometry rectangle1, Geometry rectangle2) { + boolean intersect = rectangle1.intersects(rectangle2); + Geometry overlap = rectangle1.intersection(rectangle2); + + log.info("Do both rectangle intersect? {}", intersect); + log.info("Overlapping Area: {}", overlap); + return intersect; + } + + public static Geometry getBuffer(Geometry point, int intBuffer) { + Geometry buffer = point.buffer(intBuffer); + log.info("Buffer Geometry: {}", buffer); + return buffer; + } + + public static double getDistance(Geometry point1, Geometry point2) { + double distance = point1.distance(point2); + log.info("Distance: {}",distance); + return distance; + } + + public static Geometry getUnion(Geometry geometry1, Geometry geometry2) { + Geometry union = geometry1.union(geometry2); + log.info("Union Result: {}", union); + return union; + } + + public static Geometry getDifference(Geometry base, Geometry cut) { + Geometry result = base.difference(cut); + log.info("Resulting Geometry: {}", result); + return result; + } + + public static Geometry validateAndRepair(Geometry invalidGeo) throws Exception { + boolean valid = invalidGeo.isValid(); + log.info("Is valid Geometry value? {}", valid); + + Geometry repaired = invalidGeo.buffer(0); + log.info("Repaired Geometry: {}", repaired); + return repaired; + } +} diff --git a/jts/src/main/java/com/baeldung/jts/utils/GeometryFactoryUtil.java b/jts/src/main/java/com/baeldung/jts/utils/GeometryFactoryUtil.java new file mode 100644 index 000000000000..3893a3deda1f --- /dev/null +++ b/jts/src/main/java/com/baeldung/jts/utils/GeometryFactoryUtil.java @@ -0,0 +1,11 @@ +package com.baeldung.jts.utils; + +import org.locationtech.jts.geom.Geometry; +import org.locationtech.jts.io.WKTReader; + +public class GeometryFactoryUtil { + public static Geometry readWKT(String wkt) throws Exception { + WKTReader reader = new WKTReader(); + return reader.read(wkt); + } +} diff --git a/jts/src/main/resources/application.properties b/jts/src/main/resources/application.properties new file mode 100644 index 000000000000..09c71cce3c4e --- /dev/null +++ b/jts/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=jts diff --git a/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java b/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java new file mode 100644 index 000000000000..bcd83e2346fd --- /dev/null +++ b/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java @@ -0,0 +1,69 @@ +package com.baeldung.jts; + +import com.baeldung.jts.operations.JTSOperationUtils; +import com.baeldung.jts.utils.GeometryFactoryUtil; +import org.junit.Assert; +import org.junit.Test; +import org.locationtech.jts.geom.Geometry; + +public class JtsApplicationTests { + @Test + public void givenPolygon2D_whenContainPoint_thenContainmentIsTrue() throws Exception { + Geometry point = GeometryFactoryUtil.readWKT("POINT (10 20)"); + Geometry polygon = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 40, 40 40, 40 0, 0 0))"); + Assert.assertTrue(JTSOperationUtils.isContainment(point, polygon)); + } + + @Test + public void givenRectangle1_whenIntersectWithRectangle2_thenIntersectionIsTrue() throws Exception { + Geometry rectangle1 = GeometryFactoryUtil.readWKT("POLYGON ((10 10, 10 30, 30 30, 30 10, 10 10))"); + Geometry rectangle2 = GeometryFactoryUtil.readWKT("POLYGON ((20 20, 20 40, 40 40, 40 20, 20 20))"); + Assert.assertTrue(JTSOperationUtils.checkIntersect(rectangle1, rectangle2)); + } + + @Test + public void givenPoint_whenAddedBuffer_thenPointIsInsideTheBuffer() throws Exception { + Geometry point = GeometryFactoryUtil.readWKT("POINT (10 10)"); + Geometry bufferArea = JTSOperationUtils.getBuffer(point, 5); + Assert.assertTrue(JTSOperationUtils.isContainment(point, bufferArea)); + } + + @Test + public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistance() throws Exception { + Geometry point1 = GeometryFactoryUtil.readWKT("POINT (10 10)"); + Geometry point2 = GeometryFactoryUtil.readWKT("POINT (13 14)"); + double distance = JTSOperationUtils.getDistance(point1, point2); + double expectedResult = 5.00; + double delta = 0.00; + Assert.assertEquals(expectedResult, distance, delta); + } + + @Test + public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnion() throws Exception { + Geometry geometry1 = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); + Geometry geometry2 = GeometryFactoryUtil.readWKT("POLYGON ((10 0, 10 10, 20 10, 20 0, 10 0))"); + + Geometry union = JTSOperationUtils.getUnion(geometry1, geometry2); + Geometry expectedResult = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 20 10, 20 0, 10 0, 0 0))"); + Assert.assertEquals(expectedResult, union); + } + + @Test + public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangle() throws Exception { + Geometry base = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); + Geometry cut = GeometryFactoryUtil.readWKT("POLYGON ((5 0, 5 10, 10 10, 10 0, 5 0))"); + + Geometry result = JTSOperationUtils.getDifference(base, cut); + Geometry expectedResult = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 5 10, 5 0, 0 0))"); + Assert.assertEquals(expectedResult, result); + } + + @Test + public void givenInvalidGeometryValue_whenValidated_thenGiveFixedResult() throws Exception { + Geometry invalidGeo = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 5 5, 5 0, 0 5, 0 0))"); + Geometry result = JTSOperationUtils.validateAndRepair(invalidGeo); + + Geometry expectedResult = GeometryFactoryUtil.readWKT("POLYGON ((2.5 2.5, 5 5, 5 0, 2.5 2.5))"); + Assert.assertEquals(expectedResult, result); + } +} diff --git a/pom.xml b/pom.xml index 427d29eb0249..1d33a15d5a22 100644 --- a/pom.xml +++ b/pom.xml @@ -571,6 +571,7 @@ spring-di-2 spring-security-modules/spring-security-legacy-oidc spring-reactive-modules/spring-reactive-kafka-stream-binder + jts From 847bcd00cd03c2645af1462b3c481e10b2c5aaec Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Fri, 1 Aug 2025 06:02:36 +0700 Subject: [PATCH 2/7] update unit test name --- .../java/com/baeldung/jts/JtsApplicationTests.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java b/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java index bcd83e2346fd..d03970d2c89f 100644 --- a/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java +++ b/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java @@ -8,28 +8,28 @@ public class JtsApplicationTests { @Test - public void givenPolygon2D_whenContainPoint_thenContainmentIsTrue() throws Exception { + public void givenPolygon2D_whenContainPoint_thenContainmentIsTrueUnitTest() throws Exception { Geometry point = GeometryFactoryUtil.readWKT("POINT (10 20)"); Geometry polygon = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 40, 40 40, 40 0, 0 0))"); Assert.assertTrue(JTSOperationUtils.isContainment(point, polygon)); } @Test - public void givenRectangle1_whenIntersectWithRectangle2_thenIntersectionIsTrue() throws Exception { + public void givenRectangle1_whenIntersectWithRectangle2_thenIntersectionIsTrueUnitTest() throws Exception { Geometry rectangle1 = GeometryFactoryUtil.readWKT("POLYGON ((10 10, 10 30, 30 30, 30 10, 10 10))"); Geometry rectangle2 = GeometryFactoryUtil.readWKT("POLYGON ((20 20, 20 40, 40 40, 40 20, 20 20))"); Assert.assertTrue(JTSOperationUtils.checkIntersect(rectangle1, rectangle2)); } @Test - public void givenPoint_whenAddedBuffer_thenPointIsInsideTheBuffer() throws Exception { + public void givenPoint_whenAddedBuffer_thenPointIsInsideTheBufferUnitTest() throws Exception { Geometry point = GeometryFactoryUtil.readWKT("POINT (10 10)"); Geometry bufferArea = JTSOperationUtils.getBuffer(point, 5); Assert.assertTrue(JTSOperationUtils.isContainment(point, bufferArea)); } @Test - public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistance() throws Exception { + public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistanceUnitTest() throws Exception { Geometry point1 = GeometryFactoryUtil.readWKT("POINT (10 10)"); Geometry point2 = GeometryFactoryUtil.readWKT("POINT (13 14)"); double distance = JTSOperationUtils.getDistance(point1, point2); @@ -39,7 +39,7 @@ public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistance() throws Ex } @Test - public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnion() throws Exception { + public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnionUnitTest() throws Exception { Geometry geometry1 = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); Geometry geometry2 = GeometryFactoryUtil.readWKT("POLYGON ((10 0, 10 10, 20 10, 20 0, 10 0))"); @@ -49,7 +49,7 @@ public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnion() throws Excep } @Test - public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangle() throws Exception { + public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangleUnitTest() throws Exception { Geometry base = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); Geometry cut = GeometryFactoryUtil.readWKT("POLYGON ((5 0, 5 10, 10 10, 10 0, 5 0))"); @@ -59,7 +59,7 @@ public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceR } @Test - public void givenInvalidGeometryValue_whenValidated_thenGiveFixedResult() throws Exception { + public void givenInvalidGeometryValue_whenValidated_thenGiveFixedResultUnitTest() throws Exception { Geometry invalidGeo = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 5 5, 5 0, 0 5, 0 0))"); Geometry result = JTSOperationUtils.validateAndRepair(invalidGeo); From 08e6d5f02cfbe9e8ab3a568c7b1b8887d366c626 Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Wed, 6 Aug 2025 23:42:58 +0700 Subject: [PATCH 3/7] update based on feedback --- jts/pom.xml | 6 ++++-- .../jts/operations/JTSOperationUtils.java | 2 +- ...Tests.java => JtsApplicationUnitTest.java} | 20 +++++++++---------- 3 files changed, 15 insertions(+), 13 deletions(-) rename jts/src/test/java/com/baeldung/jts/{JtsApplicationTests.java => JtsApplicationUnitTest.java} (86%) diff --git a/jts/pom.xml b/jts/pom.xml index b928e497555e..afbc543b46fd 100644 --- a/jts/pom.xml +++ b/jts/pom.xml @@ -21,6 +21,8 @@ 4.13.2 1.20.0 1.5.18 + 3.14.0 + 3.2.4 @@ -58,7 +60,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.0 + ${maven.compiler.plugin.version} ${maven.compiler.source} ${maven.compiler.target} @@ -69,7 +71,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + ${maven.shade.plugin.version} package diff --git a/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java b/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java index 25d50135e4c0..77c79c1bdde5 100644 --- a/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java +++ b/jts/src/main/java/com/baeldung/jts/operations/JTSOperationUtils.java @@ -7,7 +7,7 @@ public class JTSOperationUtils { private static final Logger log = LoggerFactory.getLogger(JTSOperationUtils.class); - public static boolean isContainment(Geometry point, Geometry polygon) { + public static boolean checkContainment(Geometry point, Geometry polygon) { boolean isInside = polygon.contains(point); log.info("Is the point inside polygon? {}", isInside); return isInside; diff --git a/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java b/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java similarity index 86% rename from jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java rename to jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java index d03970d2c89f..5bf8c462d269 100644 --- a/jts/src/test/java/com/baeldung/jts/JtsApplicationTests.java +++ b/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java @@ -6,30 +6,30 @@ import org.junit.Test; import org.locationtech.jts.geom.Geometry; -public class JtsApplicationTests { +public class JtsApplicationUnitTest { @Test - public void givenPolygon2D_whenContainPoint_thenContainmentIsTrueUnitTest() throws Exception { + public void givenPolygon2D_whenContainPoint_thenContainmentIsTrue() throws Exception { Geometry point = GeometryFactoryUtil.readWKT("POINT (10 20)"); Geometry polygon = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 40, 40 40, 40 0, 0 0))"); - Assert.assertTrue(JTSOperationUtils.isContainment(point, polygon)); + Assert.assertTrue(JTSOperationUtils.checkContainment(point, polygon)); } @Test - public void givenRectangle1_whenIntersectWithRectangle2_thenIntersectionIsTrueUnitTest() throws Exception { + public void givenRectangle1_whenIntersectWithRectangle2_thenIntersectionIsTrue() throws Exception { Geometry rectangle1 = GeometryFactoryUtil.readWKT("POLYGON ((10 10, 10 30, 30 30, 30 10, 10 10))"); Geometry rectangle2 = GeometryFactoryUtil.readWKT("POLYGON ((20 20, 20 40, 40 40, 40 20, 20 20))"); Assert.assertTrue(JTSOperationUtils.checkIntersect(rectangle1, rectangle2)); } @Test - public void givenPoint_whenAddedBuffer_thenPointIsInsideTheBufferUnitTest() throws Exception { + public void givenPoint_whenAddedBuffer_thenPointIsInsideTheBuffer() throws Exception { Geometry point = GeometryFactoryUtil.readWKT("POINT (10 10)"); Geometry bufferArea = JTSOperationUtils.getBuffer(point, 5); - Assert.assertTrue(JTSOperationUtils.isContainment(point, bufferArea)); + Assert.assertTrue(JTSOperationUtils.checkContainment(point, bufferArea)); } @Test - public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistanceUnitTest() throws Exception { + public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistance() throws Exception { Geometry point1 = GeometryFactoryUtil.readWKT("POINT (10 10)"); Geometry point2 = GeometryFactoryUtil.readWKT("POINT (13 14)"); double distance = JTSOperationUtils.getDistance(point1, point2); @@ -39,7 +39,7 @@ public void givenTwoPoints_whenGetDistanceBetween_thenGetTheDistanceUnitTest() t } @Test - public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnionUnitTest() throws Exception { + public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnion() throws Exception { Geometry geometry1 = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); Geometry geometry2 = GeometryFactoryUtil.readWKT("POLYGON ((10 0, 10 10, 20 10, 20 0, 10 0))"); @@ -49,7 +49,7 @@ public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnionUnitTest() thro } @Test - public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangleUnitTest() throws Exception { + public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangle() throws Exception { Geometry base = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); Geometry cut = GeometryFactoryUtil.readWKT("POLYGON ((5 0, 5 10, 10 10, 10 0, 5 0))"); @@ -59,7 +59,7 @@ public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceR } @Test - public void givenInvalidGeometryValue_whenValidated_thenGiveFixedResultUnitTest() throws Exception { + public void givenInvalidGeometryValue_whenValidated_thenGiveFixedResult() throws Exception { Geometry invalidGeo = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 5 5, 5 0, 0 5, 0 0))"); Geometry result = JTSOperationUtils.validateAndRepair(invalidGeo); From 48f4206158a273542c3557ee7287d44815549c73 Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Thu, 7 Aug 2025 00:02:41 +0700 Subject: [PATCH 4/7] move module to default parent with jdk 24 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index be180001cabc..9741e6afe471 100644 --- a/pom.xml +++ b/pom.xml @@ -571,7 +571,6 @@ spring-di-2 spring-security-modules/spring-security-legacy-oidc spring-reactive-modules/spring-reactive-kafka-stream-binder - jts @@ -683,6 +682,7 @@ json-modules jsoup jws + jts ksqldb kubernetes-modules libraries From 61968849a622ae8e5f7ab5504495a52aa61ba21f Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Thu, 7 Aug 2025 00:04:20 +0700 Subject: [PATCH 5/7] Revert "move module to default parent with jdk 21" This reverts commit 48f4206158a273542c3557ee7287d44815549c73. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9741e6afe471..be180001cabc 100644 --- a/pom.xml +++ b/pom.xml @@ -571,6 +571,7 @@ spring-di-2 spring-security-modules/spring-security-legacy-oidc spring-reactive-modules/spring-reactive-kafka-stream-binder + jts @@ -682,7 +683,6 @@ json-modules jsoup jws - jts ksqldb kubernetes-modules libraries From cef0aa621b6d9ecf9601e214779b04bac2ae1266 Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Thu, 7 Aug 2025 00:11:46 +0700 Subject: [PATCH 6/7] fix unit test naming --- jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java b/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java index 5bf8c462d269..adabbb8d7f4c 100644 --- a/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java +++ b/jts/src/test/java/com/baeldung/jts/JtsApplicationUnitTest.java @@ -49,7 +49,7 @@ public void givenTwoGeometries_whenGetUnionOfBoth_thenGetTheUnion() throws Excep } @Test - public void givenBaseRectangle_whenAnotherRectangleOverlapping_GetTheDifferenceRectangle() throws Exception { + public void givenBaseRectangle_whenAnotherRectangleOverlapping_thenGetTheDifferenceRectangle() throws Exception { Geometry base = GeometryFactoryUtil.readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))"); Geometry cut = GeometryFactoryUtil.readWKT("POLYGON ((5 0, 5 10, 10 10, 10 0, 5 0))"); From 617c2e6d098b095fcc92850e4b70cec482232f22 Mon Sep 17 00:00:00 2001 From: oscarramadhan Date: Fri, 8 Aug 2025 10:10:43 +0700 Subject: [PATCH 7/7] move module to jdk 21 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index be180001cabc..48ee7bbba11e 100644 --- a/pom.xml +++ b/pom.xml @@ -571,7 +571,6 @@ spring-di-2 spring-security-modules/spring-security-legacy-oidc spring-reactive-modules/spring-reactive-kafka-stream-binder - jts @@ -682,6 +681,7 @@ jmonkeyengine json-modules jsoup + jts jws ksqldb kubernetes-modules