From 0f1c11f9b226ec516f484aec6db5ad98cffaac19 Mon Sep 17 00:00:00 2001 From: Arman Sharif Date: Tue, 7 Feb 2023 06:35:24 -0800 Subject: [PATCH 01/15] Updated Instancio version --- testing-modules/instancio/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing-modules/instancio/pom.xml b/testing-modules/instancio/pom.xml index 137da91897..7687ce282d 100644 --- a/testing-modules/instancio/pom.xml +++ b/testing-modules/instancio/pom.xml @@ -51,8 +51,8 @@ - 2.6.0 + 2.9.0 2.14.1 5.9.2 - \ No newline at end of file + From 9523e4dcc8874a41e6ea645b161da57ff0ddc181 Mon Sep 17 00:00:00 2001 From: panos-kakos Date: Mon, 20 Feb 2023 16:07:13 +0200 Subject: [PATCH 02/15] [JAVA-18603] Upgraded junit-jupiter.version to 5.9.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8b395d44f1..f04f93e339 100644 --- a/pom.xml +++ b/pom.xml @@ -1344,7 +1344,7 @@ 2.13.3 1.4 1.8.1 - 5.8.1 + 5.9.2 1.3.2 0.3.1 2.5.2 From d4419b6bf1cae157bb28fd16b1f566aa98eeebd7 Mon Sep 17 00:00:00 2001 From: panos-kakos Date: Tue, 21 Feb 2023 06:31:23 +0200 Subject: [PATCH 03/15] [JAVA-18603] Upgraded junit-platform version --- testing-modules/junit5-annotations/pom.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/testing-modules/junit5-annotations/pom.xml b/testing-modules/junit5-annotations/pom.xml index a4035a23f1..ab3c1c0cc2 100644 --- a/testing-modules/junit5-annotations/pom.xml +++ b/testing-modules/junit5-annotations/pom.xml @@ -15,6 +15,12 @@ + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + org.junit.platform junit-platform-engine @@ -39,7 +45,8 @@ - 2.17.1 + 2.19.0 + 1.9.2 \ No newline at end of file From 0a60389b76f1f2cf1923861c7deb70b8b6b89a04 Mon Sep 17 00:00:00 2001 From: panos-kakos Date: Tue, 21 Feb 2023 17:23:18 +0200 Subject: [PATCH 04/15] [JAVA-18603] Upgraded junit-platform version at parent pom --- pom.xml | 2 +- testing-modules/junit5-annotations/pom.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f04f93e339..82ee69978e 100644 --- a/pom.xml +++ b/pom.xml @@ -1343,7 +1343,7 @@ 1.2 2.13.3 1.4 - 1.8.1 + 1.9.2 5.9.2 1.3.2 0.3.1 diff --git a/testing-modules/junit5-annotations/pom.xml b/testing-modules/junit5-annotations/pom.xml index ab3c1c0cc2..847baa827c 100644 --- a/testing-modules/junit5-annotations/pom.xml +++ b/testing-modules/junit5-annotations/pom.xml @@ -46,7 +46,6 @@ 2.19.0 - 1.9.2 \ No newline at end of file From 27b3b339a807fad708e45adbdca2c0f657fe6ef3 Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Tue, 21 Feb 2023 17:41:43 +0200 Subject: [PATCH 05/15] [JAVA-18124] Moved apache-libraries module to jdk9-and-above profile (#13502) * [JAVA-18124] Moved apache-libraries module to jdk9-and-above profile * [JAVA-18124] Upgrade beam version --- apache-libraries/pom.xml | 9 +-------- pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/apache-libraries/pom.xml b/apache-libraries/pom.xml index 3d78869865..b6418e6a04 100644 --- a/apache-libraries/pom.xml +++ b/apache-libraries/pom.xml @@ -118,11 +118,6 @@ curator-recipes ${curator.version} - - org.apache.zookeeper - zookeeper - ${zookeeper.version} - com.fasterxml.jackson.core jackson-core @@ -191,10 +186,8 @@ - 1.8 - 1.8 1.8.2 - 2.19.0 + 2.45.0 1.1.2 1.1.0.Final 1.2.0 diff --git a/pom.xml b/pom.xml index 33ea7a7c5f..3994c713c8 100644 --- a/pom.xml +++ b/pom.xml @@ -331,7 +331,6 @@ parent-java apache-cxf-modules - apache-libraries azure checker-plugin @@ -599,7 +598,6 @@ parent-java apache-cxf-modules - apache-libraries azure checker-plugin @@ -878,6 +876,7 @@ algorithms-modules + apache-libraries apache-poi apache-velocity di-modules @@ -1087,6 +1086,7 @@ algorithms-modules + apache-libraries apache-poi apache-velocity di-modules From 9089d84d2bcc7733821ea3edb153af38974d34db Mon Sep 17 00:00:00 2001 From: alemoles Date: Tue, 21 Feb 2023 13:20:33 -0300 Subject: [PATCH 06/15] BAEL-5912 Introduction to RoaringBitmap (#13326) --- .../core-java-collections-5/README.md | 7 ++ .../core-java-collections-5/pom.xml | 58 +++++++++++++ .../roaringbitmap/BitSetsBenchmark.java | 82 +++++++++++++++++++ .../roaringbitmap/BitSetsBenchmarkRunner.java | 9 ++ .../RoaringBitmapBenchmarkUnitTest.java | 45 ++++++++++ core-java-modules/pom.xml | 1 + 6 files changed, 202 insertions(+) create mode 100644 core-java-modules/core-java-collections-5/README.md create mode 100644 core-java-modules/core-java-collections-5/pom.xml create mode 100644 core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmark.java create mode 100644 core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmarkRunner.java create mode 100644 core-java-modules/core-java-collections-5/src/test/java/com/baeldung/roaringbitmap/RoaringBitmapBenchmarkUnitTest.java diff --git a/core-java-modules/core-java-collections-5/README.md b/core-java-modules/core-java-collections-5/README.md new file mode 100644 index 0000000000..cf479ec507 --- /dev/null +++ b/core-java-modules/core-java-collections-5/README.md @@ -0,0 +1,7 @@ +========= + +## Core Java Collections Cookbooks and Examples + +### Relevant Articles: + +- More articles: [[<-- prev]](/core-java-modules/core-java-collections-4) \ No newline at end of file diff --git a/core-java-modules/core-java-collections-5/pom.xml b/core-java-modules/core-java-collections-5/pom.xml new file mode 100644 index 0000000000..67c9f7120c --- /dev/null +++ b/core-java-modules/core-java-collections-5/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + core-java-collections-5 + 0.0.1-SNAPSHOT + core-java-collections-5 + jar + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + org.junit.platform + junit-platform-runner + ${junit-platform.version} + test + + + org.junit.jupiter + junit-jupiter + ${junit.version} + test + + + org.junit.vintage + junit-vintage-engine + ${junit.version} + test + + + org.roaringbitmap + RoaringBitmap + ${roaringbitmap.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + + + org.openjdk.jmh + jmh-core + ${jmh.version} + + + + + 5.9.2 + 0.9.38 + 1.36 + + diff --git a/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmark.java b/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmark.java new file mode 100644 index 0000000000..4968afb752 --- /dev/null +++ b/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmark.java @@ -0,0 +1,82 @@ +package com.baeldung.roaringbitmap; + +import java.util.BitSet; + +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.roaringbitmap.RoaringBitmap; + +@State(Scope.Thread) +public class BitSetsBenchmark { + private RoaringBitmap rb1; + private BitSet bs1; + private RoaringBitmap rb2; + private BitSet bs2; + private final static int SIZE = 10_000_000; + + @Setup + public void setup() { + rb1 = new RoaringBitmap(); + bs1 = new BitSet(SIZE); + rb2 = new RoaringBitmap(); + bs2 = new BitSet(SIZE); + for (int i = 0; i < SIZE / 2; i++) { + rb1.add(i); + bs1.set(i); + } + for (int i = SIZE / 2; i < SIZE; i++) { + rb2.add(i); + bs2.set(i); + } + } + + @Benchmark + public RoaringBitmap roaringBitmapUnion() { + return RoaringBitmap.or(rb1, rb2); + } + + @Benchmark + public BitSet bitSetUnion() { + BitSet result = (BitSet) bs1.clone(); + result.or(bs2); + return result; + } + + @Benchmark + public RoaringBitmap roaringBitmapIntersection() { + return RoaringBitmap.and(rb1, rb2); + } + + @Benchmark + public BitSet bitSetIntersection() { + BitSet result = (BitSet) bs1.clone(); + result.and(bs2); + return result; + } + + @Benchmark + public RoaringBitmap roaringBitmapDifference() { + return RoaringBitmap.andNot(rb1, rb2); + } + + @Benchmark + public BitSet bitSetDifference() { + BitSet result = (BitSet) bs1.clone(); + result.andNot(bs2); + return result; + } + + @Benchmark + public RoaringBitmap roaringBitmapXOR() { + return RoaringBitmap.xor(rb1, rb2); + } + + @Benchmark + public BitSet bitSetXOR() { + BitSet result = (BitSet) bs1.clone(); + result.xor(bs2); + return result; + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmarkRunner.java b/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmarkRunner.java new file mode 100644 index 0000000000..49d556df7e --- /dev/null +++ b/core-java-modules/core-java-collections-5/src/main/java/com/baeldung/roaringbitmap/BitSetsBenchmarkRunner.java @@ -0,0 +1,9 @@ +package com.baeldung.roaringbitmap; + +import java.io.IOException; + +public class BitSetsBenchmarkRunner { + public static void main(String... args) throws IOException { + org.openjdk.jmh.Main.main(args); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-collections-5/src/test/java/com/baeldung/roaringbitmap/RoaringBitmapBenchmarkUnitTest.java b/core-java-modules/core-java-collections-5/src/test/java/com/baeldung/roaringbitmap/RoaringBitmapBenchmarkUnitTest.java new file mode 100644 index 0000000000..07170512d9 --- /dev/null +++ b/core-java-modules/core-java-collections-5/src/test/java/com/baeldung/roaringbitmap/RoaringBitmapBenchmarkUnitTest.java @@ -0,0 +1,45 @@ +package com.baeldung.roaringbitmap; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; +import org.roaringbitmap.RoaringBitmap; + +class RoaringBitmapBenchmarkUnitTest { + @Test + public void givenTwoRoaringBitmap_whenUsingOr_thenWillGetSetsUnion() { + RoaringBitmap expected = RoaringBitmap.bitmapOf(1, 2, 3, 4, 5, 6, 7, 8); + RoaringBitmap A = RoaringBitmap.bitmapOf(1, 2, 3, 4, 5); + RoaringBitmap B = RoaringBitmap.bitmapOf(4, 5, 6, 7, 8); + RoaringBitmap union = RoaringBitmap.or(A, B); + assertEquals(expected, union); + } + + @Test + public void givenTwoRoaringBitmap_whenUsingAnd_thenWillGetSetsIntersection() { + RoaringBitmap expected = RoaringBitmap.bitmapOf(4, 5); + RoaringBitmap A = RoaringBitmap.bitmapOfRange(1, 6); + RoaringBitmap B = RoaringBitmap.bitmapOf(4, 5, 6, 7, 8); + RoaringBitmap intersection = RoaringBitmap.and(A, B); + assertEquals(expected, intersection); + } + + @Test + public void givenTwoRoaringBitmap_whenUsingAndNot_thenWillGetSetsDifference() { + RoaringBitmap expected = RoaringBitmap.bitmapOf(1, 2, 3); + RoaringBitmap A = new RoaringBitmap(); + A.add(1L, 6L); + RoaringBitmap B = RoaringBitmap.bitmapOf(4, 5, 6, 7, 8); + RoaringBitmap difference = RoaringBitmap.andNot(A, B); + assertEquals(expected, difference); + } + + @Test + public void givenTwoRoaringBitmap_whenUsingXOR_thenWillGetSetsSymmetricDifference() { + RoaringBitmap expected = RoaringBitmap.bitmapOf(1, 2, 3, 6, 7, 8); + RoaringBitmap A = RoaringBitmap.bitmapOfRange(1, 6); + RoaringBitmap B = RoaringBitmap.bitmapOfRange(4, 9); + RoaringBitmap xor = RoaringBitmap.xor(A, B); + assertEquals(expected, xor); + } +} \ No newline at end of file diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 1033213cd1..a96489ec6f 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -31,6 +31,7 @@ core-java-collections-2 core-java-collections-3 core-java-collections-4 + core-java-collections-5 core-java-collections-conversions core-java-collections-conversions-2 core-java-collections-set-2 From 14ce0136bd8a2f8600ccb2fb55bc90b138336426 Mon Sep 17 00:00:00 2001 From: 2406ankita <41814570+2406ankita@users.noreply.github.com> Date: Wed, 22 Feb 2023 18:36:23 +0530 Subject: [PATCH 07/15] Finding All Duplicates in a List in Java- BAEL-6075 (#13291) * Deep & Shallow Copy * Revert "Deep & Shallow Copy" This reverts commit 62f75b002a21feb90c0b6be02072356b64284283. * duplicates in a list in java * Unit test changes * unit test changes * Tests change after review * Code formatted * code formatted * new module core-java-lang-6 * entry in parent pom and test setup method name change * module renamed * parent pom entry added * pom.xml changes reverted --- .../baeldung/listduplicate/ListDuplicate.java | 69 +++++++++++++++++++ .../listduplicate/ListDuplicateUnitTest.java | 68 ++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/listduplicate/ListDuplicate.java create mode 100644 core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/listduplicate/ListDuplicateUnitTest.java diff --git a/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/listduplicate/ListDuplicate.java b/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/listduplicate/ListDuplicate.java new file mode 100644 index 0000000000..5e3e845916 --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/src/main/java/com/baeldung/listduplicate/ListDuplicate.java @@ -0,0 +1,69 @@ +package com.baeldung.listduplicate; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class ListDuplicate { + public List listDuplicateUsingSet(List list) { + List duplicates = new ArrayList<>(); + Set set = new HashSet<>(); + for (Integer i : list) { + if (set.contains(i)) { + duplicates.add(i); + } else { + set.add(i); + } + } + return duplicates; + } + + public List listDuplicateUsingMap(List list) { + List duplicates = new ArrayList<>(); + Map frequencyMap = new HashMap<>(); + for (Integer number : list) { + frequencyMap.put(number, frequencyMap.getOrDefault(number, 0) + 1); + } + for (int number : frequencyMap.keySet()) { + if (frequencyMap.get(number) != 1) { + duplicates.add(number); + } + } + return duplicates; + } + + public List listDuplicateUsingFilterAndSetAdd(List list) { + Set elements = new HashSet(); + return list.stream() + .filter(n -> !elements.add(n)) + .collect(Collectors.toList()); + } + + public List listDuplicateUsingCollectionsFrequency(List list) { + List duplicates = new ArrayList<>(); + Set set = list.stream() + .filter(i -> Collections.frequency(list, i) > 1) + .collect(Collectors.toSet()); + duplicates.addAll(set); + return duplicates; + } + + public List listDuplicateUsingMapAndCollectorsGroupingBy(List list) { + List duplicates = new ArrayList<>(); + Set set = list.stream() + .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) + .entrySet() + .stream() + .filter(m -> m.getValue() > 1) + .map(Map.Entry::getKey) + .collect(Collectors.toSet()); + duplicates.addAll(set); + return duplicates; + } +} diff --git a/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/listduplicate/ListDuplicateUnitTest.java b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/listduplicate/ListDuplicateUnitTest.java new file mode 100644 index 0000000000..0d81387aea --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/listduplicate/ListDuplicateUnitTest.java @@ -0,0 +1,68 @@ +package com.baeldung.listduplicate; + +import java.util.Arrays; +import java.util.List; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ListDuplicateUnitTest { + private static ListDuplicate listDuplicate; + + @BeforeClass + public static void setup() { + listDuplicate = new ListDuplicate(); + } + + @Test + public void givenList_whenUsingSet_thenReturnDuplicateElements() { + List list = Arrays.asList(1, 2, 3, 3, 4, 4, 5); + List duplicates = listDuplicate.listDuplicateUsingSet(list); + Assert.assertEquals(duplicates.size(), 2); + Assert.assertEquals(duplicates.contains(3), true); + Assert.assertEquals(duplicates.contains(4), true); + Assert.assertEquals(duplicates.contains(1), false); + } + + @Test + public void givenList_whenUsingFrequencyMap_thenReturnDuplicateElements() { + List list = Arrays.asList(1, 2, 3, 3, 4, 4, 5); + List duplicates = listDuplicate.listDuplicateUsingMap(list); + Assert.assertEquals(duplicates.size(), 2); + Assert.assertEquals(duplicates.contains(3), true); + Assert.assertEquals(duplicates.contains(4), true); + Assert.assertEquals(duplicates.contains(1), false); + } + + @Test + public void givenList_whenUsingFilterAndSetAdd_thenReturnDuplicateElements() { + List list = Arrays.asList(1, 2, 3, 3, 4, 4, 5); + List duplicates = listDuplicate.listDuplicateUsingFilterAndSetAdd(list); + Assert.assertEquals(duplicates.size(), 2); + Assert.assertEquals(duplicates.contains(3), true); + Assert.assertEquals(duplicates.contains(4), true); + Assert.assertEquals(duplicates.contains(1), false); + } + + @Test + public void givenList_whenUsingCollectionsFrequency_thenReturnDuplicateElements() { + List list = Arrays.asList(1, 2, 3, 3, 4, 4, 5); + List duplicates = listDuplicate.listDuplicateUsingCollectionsFrequency(list); + Assert.assertEquals(duplicates.size(), 2); + Assert.assertEquals(duplicates.contains(3), true); + Assert.assertEquals(duplicates.contains(4), true); + Assert.assertEquals(duplicates.contains(1), false); + } + + @Test + public void givenList_whenUsingMapAndCollectorsGroupingBy_thenReturnDuplicateElements() { + List list = Arrays.asList(1, 2, 3, 3, 4, 4, 5); + List duplicates = listDuplicate.listDuplicateUsingCollectionsFrequency(list); + Assert.assertEquals(duplicates.size(), 2); + Assert.assertEquals(duplicates.contains(3), true); + Assert.assertEquals(duplicates.contains(4), true); + Assert.assertEquals(duplicates.contains(1), false); + } + +} From 58b8b7ecc788cae97bd0d5721f3604cfba9ea48c Mon Sep 17 00:00:00 2001 From: ACHRAF TAITAI <43656331+achraftt@users.noreply.github.com> Date: Wed, 22 Feb 2023 14:28:11 +0100 Subject: [PATCH 08/15] Bael 6069 (#13521) * BAEL-6069: Exclude dependency in a Maven plugin * BAEL-6069: rename project --- .../core-java-exclusions/pom.xml | 53 ++++++++++++++ .../ExcludeDirectDependencyUnitTest.java | 12 ++++ .../dummy-surefire-junit47/pom.xml | 9 +++ dependency-exclusion/pom.xml | 71 +++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 dependency-exclusion/core-java-exclusions/pom.xml create mode 100644 dependency-exclusion/core-java-exclusions/src/test/java/com/sample/project/tests/ExcludeDirectDependencyUnitTest.java create mode 100644 dependency-exclusion/dummy-surefire-junit47/pom.xml create mode 100644 dependency-exclusion/pom.xml diff --git a/dependency-exclusion/core-java-exclusions/pom.xml b/dependency-exclusion/core-java-exclusions/pom.xml new file mode 100644 index 0000000000..cf1b36656d --- /dev/null +++ b/dependency-exclusion/core-java-exclusions/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + core-java-exclusions + 0.0.0-SNAPSHOT + core-java-exclusions + jar + + + com.baeldung.dependency-exclusion + dependency-exclusion + 0.0.1-SNAPSHOT + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire-version} + + alphabetical + 1 + + + junit + false + + + + + + + org.apache.maven.surefire + surefire-junit47 + dummy + + + + + + + + + junit + junit + test + + + + diff --git a/dependency-exclusion/core-java-exclusions/src/test/java/com/sample/project/tests/ExcludeDirectDependencyUnitTest.java b/dependency-exclusion/core-java-exclusions/src/test/java/com/sample/project/tests/ExcludeDirectDependencyUnitTest.java new file mode 100644 index 0000000000..ed2400f9ac --- /dev/null +++ b/dependency-exclusion/core-java-exclusions/src/test/java/com/sample/project/tests/ExcludeDirectDependencyUnitTest.java @@ -0,0 +1,12 @@ +package com.sample.project.tests; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class ExcludeDirectDependencyUnitTest { + @Test + public void basicUnitTest() { + assertTrue(true); + } +} diff --git a/dependency-exclusion/dummy-surefire-junit47/pom.xml b/dependency-exclusion/dummy-surefire-junit47/pom.xml new file mode 100644 index 0000000000..5859ddbe72 --- /dev/null +++ b/dependency-exclusion/dummy-surefire-junit47/pom.xml @@ -0,0 +1,9 @@ + + + 4.0.0 + org.apache.maven.surefire + surefire-junit47 + dummy + diff --git a/dependency-exclusion/pom.xml b/dependency-exclusion/pom.xml new file mode 100644 index 0000000000..ac83cc161a --- /dev/null +++ b/dependency-exclusion/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + com.baeldung.dependency-exclusion + dependency-exclusion + dependency-exclusion + pom + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../parent-java + + + + 2.22.2 + + + + dummy-surefire-junit47 + core-java-exclusions + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + + -parameters + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire-version} + + 1 + + + + org.apache.maven.surefire + surefire-junit-platform + ${surefire-version} + + + + + + + + + + + junit + junit + 4.13 + + + + + From 12f814488b29a484c64ed1a205c42d36f329209a Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Wed, 22 Feb 2023 16:09:20 +0200 Subject: [PATCH 09/15] [JAVA-16376] Moved quarkus-modules to jdk9-and-above profile (#13487) * [JAVA-16376] Moved quarkus-modules to jdk9-and-above profile * [JAVA-18171] Moved reactive-systems module to jdk9-and-above profile * [JAVA-18170] Moved rxjava-modules to jdk9-and-above profile * [JAVA-18165] Moved patterns-modules to jdk9-and-above profile * [JAVA-18168] Upgraded quarkus version * [JAVA-16394] Moved groovy modules to jdk9-and-above profile * [JAVA-18165] Reverted changes for pattern-modules * [JAVA-16394] Upgraded dependencies to latest versions * [JAVA-18134] Upgraded guava-modules to java 11 and moved to jdk9-and-above profile * [JAVA-16394] Fixed groovy-eclipse-batch dependency version --------- Co-authored-by: Dhawal Kapil --- core-groovy-modules/core-groovy-2/pom.xml | 9 +++--- core-groovy-modules/pom.xml | 10 +++--- guava-modules/guava-collections/pom.xml | 1 + pom.xml | 31 ++++++------------- quarkus-modules/pom.xml | 3 +- quarkus-modules/quarkus/pom.xml | 2 +- rxjava-modules/pom.xml | 1 + .../SingleJustVsFromCallableTest.java | 2 +- 8 files changed, 26 insertions(+), 33 deletions(-) diff --git a/core-groovy-modules/core-groovy-2/pom.xml b/core-groovy-modules/core-groovy-2/pom.xml index 2b864ec7a1..ca6a9a62c7 100644 --- a/core-groovy-modules/core-groovy-2/pom.xml +++ b/core-groovy-modules/core-groovy-2/pom.xml @@ -83,7 +83,7 @@ org.codehaus.groovy groovy-eclipse-batch - ${groovy.version}-01 + ${groovy-eclipse-batch.version} @@ -163,9 +163,10 @@ 1.1.3 - 3.1.0 - 3.8.0 - 3.3.0-01 + 3.4.2 + 3.8.1 + 3.7.0 + 3.0.8-01 diff --git a/core-groovy-modules/pom.xml b/core-groovy-modules/pom.xml index 2d1120e435..6faa7f94c8 100644 --- a/core-groovy-modules/pom.xml +++ b/core-groovy-modules/pom.xml @@ -21,12 +21,12 @@ - 3.0.8 - 3.0.8 - 3.0.8 - 2.4.0 + 3.0.15 + 3.0.15 + 3.0.15 + 2.7.1 2.3-groovy-3.0 - 1.6 + 2.1.0 diff --git a/guava-modules/guava-collections/pom.xml b/guava-modules/guava-collections/pom.xml index 9283107023..8dc052db75 100644 --- a/guava-modules/guava-collections/pom.xml +++ b/guava-modules/guava-collections/pom.xml @@ -37,6 +37,7 @@ ${java-hamcrest.version} test + diff --git a/pom.xml b/pom.xml index 3994c713c8..49a0ddd8fe 100644 --- a/pom.xml +++ b/pom.xml @@ -336,7 +336,6 @@ checker-plugin - core-groovy-modules core-java-modules couchbase @@ -346,7 +345,6 @@ gradle-modules/gradle/maven-to-gradle - guava-modules apache-httpclient @@ -402,13 +400,8 @@ performance-tests persistence-modules - - quarkus-modules - rule-engines-modules - rxjava-modules - reactive-systems security-modules vavr-modules @@ -603,7 +596,6 @@ checker-plugin - core-groovy-modules core-java-modules couchbase drools @@ -611,8 +603,6 @@ gradle-modules/gradle/maven-to-gradle - - guava-modules apache-httpclient @@ -657,7 +647,6 @@ microservices-modules muleesb - netflix-modules osgi @@ -668,13 +657,8 @@ performance-tests persistence-modules - - quarkus-modules - rule-engines-modules - rxjava-modules - reactive-systems security-modules vavr-modules @@ -882,6 +866,7 @@ di-modules asciidoctor aws-modules + core-groovy-modules core-java-modules/core-java-9 core-java-modules/core-java-9-improvements core-java-modules/core-java-9-jigsaw @@ -925,6 +910,7 @@ ddd-contexts deeplearning4j docker-modules + guava-modules apache-httpclient-2 kubernetes-modules/kubernetes-spring libraries-concurrency @@ -934,8 +920,7 @@ optaplanner persistence-modules/sirix persistence-modules/spring-data-cassandra-2 - quarkus-modules/quarkus-vs-springboot - quarkus-modules/quarkus-jandex + quarkus-modules spring-boot-modules/spring-boot-cassandre spring-boot-modules/spring-boot-3 spring-boot-modules/spring-boot-3-native @@ -945,6 +930,8 @@ spring-swagger-codegen/custom-validations-opeanpi-codegen testing-modules/testing-assertions persistence-modules/fauna + reactive-systems + rxjava-modules lightrun tablesaw geotools @@ -1092,7 +1079,7 @@ di-modules asciidoctor aws-modules - + core-groovy-modules core-java-modules/core-java-9 core-java-modules/core-java-9-improvements core-java-modules/core-java-9-jigsaw @@ -1136,6 +1123,7 @@ ddd-contexts deeplearning4j docker-modules + guava-modules apache-httpclient-2 kubernetes-modules/kubernetes-spring libraries-concurrency @@ -1145,8 +1133,7 @@ optaplanner persistence-modules/sirix persistence-modules/spring-data-cassandra-2 - quarkus-modules/quarkus-vs-springboot - quarkus-modules/quarkus-jandex + quarkus-modules spring-boot-modules/spring-boot-cassandre spring-boot-modules/spring-boot-3 spring-boot-modules/spring-boot-3-native @@ -1156,6 +1143,8 @@ spring-swagger-codegen/custom-validations-opeanpi-codegen testing-modules/testing-assertions persistence-modules/fauna + reactive-systems + rxjava-modules lightrun tablesaw geotools diff --git a/quarkus-modules/pom.xml b/quarkus-modules/pom.xml index 94fe1ae10f..ab9f7c3906 100644 --- a/quarkus-modules/pom.xml +++ b/quarkus-modules/pom.xml @@ -16,7 +16,8 @@ quarkus quarkus-extension - + quarkus-jandex + quarkus-vs-springboot \ No newline at end of file diff --git a/quarkus-modules/quarkus/pom.xml b/quarkus-modules/quarkus/pom.xml index 3e1cbff01c..99d18579c3 100644 --- a/quarkus-modules/quarkus/pom.xml +++ b/quarkus-modules/quarkus/pom.xml @@ -182,7 +182,7 @@ - 1.7.0.Final + 2.16.3.Final 3.3.0 diff --git a/rxjava-modules/pom.xml b/rxjava-modules/pom.xml index cd46270d92..2f2597b644 100644 --- a/rxjava-modules/pom.xml +++ b/rxjava-modules/pom.xml @@ -17,6 +17,7 @@ rxjava-core + rxjava-core-2 rxjava-libraries rxjava-observables rxjava-operators diff --git a/rxjava-modules/rxjava-core-2/src/test/java/com/baeldung/rxjava/justvscallable/SingleJustVsFromCallableTest.java b/rxjava-modules/rxjava-core-2/src/test/java/com/baeldung/rxjava/justvscallable/SingleJustVsFromCallableTest.java index d0de86fed8..a693432343 100644 --- a/rxjava-modules/rxjava-core-2/src/test/java/com/baeldung/rxjava/justvscallable/SingleJustVsFromCallableTest.java +++ b/rxjava-modules/rxjava-core-2/src/test/java/com/baeldung/rxjava/justvscallable/SingleJustVsFromCallableTest.java @@ -12,7 +12,7 @@ import org.mockito.Mockito; import rx.Single; import rx.observers.TestSubscriber; -class SingleJustVsFromCallableTest { +class SingleJustVsFromCallableUnitTest { public EmployeeRepository repository = mock(EmployeeRepository.class); From 8db563d9f9f53ff9373e99fd292471251d3b00ec Mon Sep 17 00:00:00 2001 From: Ulisses Lima Date: Wed, 22 Feb 2023 22:19:08 -0300 Subject: [PATCH 10/15] deprecation --- .../baeldung/annotations/ClassWithSuppressWarningsNames.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/annotations/ClassWithSuppressWarningsNames.java b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/annotations/ClassWithSuppressWarningsNames.java index aad7cf49eb..d0a325a155 100644 --- a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/annotations/ClassWithSuppressWarningsNames.java +++ b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/annotations/ClassWithSuppressWarningsNames.java @@ -17,7 +17,7 @@ public class ClassWithSuppressWarningsNames implements Serializable { list.add(Integer.valueOf(value)); } - @SuppressWarnings("deprecated") + @SuppressWarnings("deprecation") void suppressDeprecatedWarning() { ClassWithSuppressWarningsNames cls = new ClassWithSuppressWarningsNames(); cls.deprecatedMethod(); // no warning here From 6ad0c4f6805e6d298b12bf025f1b4677967f969b Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Thu, 23 Feb 2023 16:45:24 +0530 Subject: [PATCH 11/15] Update README.md (#13526) --- core-groovy-modules/core-groovy-2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-groovy-modules/core-groovy-2/README.md b/core-groovy-modules/core-groovy-2/README.md index 9f81ac6c16..f128b43092 100644 --- a/core-groovy-modules/core-groovy-2/README.md +++ b/core-groovy-modules/core-groovy-2/README.md @@ -14,4 +14,4 @@ This module contains articles about core Groovy concepts - [A Quick Guide to Working with Web Services in Groovy](https://www.baeldung.com/groovy-web-services) - [Categories in Groovy](https://www.baeldung.com/groovy-categories) - [How to Determine the Data Type in Groovy](https://www.baeldung.com/groovy-determine-data-type) -- [[<-- Prev]](/core-groovy) +- [[<-- Prev]](/core-groovy-modules/core-groovy) From 0b7379f60d1121992f2dbf47d8475671af8e3f9e Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:47:39 +0200 Subject: [PATCH 12/15] =?UTF-8?q?[JAVA-18169]=20Moved=20rule-engines=20mod?= =?UTF-8?q?ule=20to=20jdk9-and-above=20profile=20+=20Up=E2=80=A6=20(#13505?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [JAVA-18169] Moved rule-engines module to jdk9-and-above profile + Upgraded dependencies * [JAVA-18155] Moved libraries-testing module to jdk9-and-above profile * [JAVA-16395] Moved couchbase module to jdk9-and-above profile * [JAVA-18155] Upgraded libraries versions * [JAVA-18181] Moved spring-aop module to jdk9-and-above profile * [JAVA-18182] Moved spring-aop-2 module to jdk9-and-above profile * [JAVA-18143] Moved jmeter module to jdk9-and-above profile + testing build * [JAVA-18181] testing build * [JAVA-18181] Added configuration for war plugin * [JAVA-18182] Added maven-war-plugin --- couchbase/pom.xml | 9 ++++- libraries-testing/pom.xml | 5 +-- pom.xml | 47 +++++++++++++++------- rule-engines-modules/easy-rules/pom.xml | 2 +- rule-engines-modules/evrete/pom.xml | 2 +- rule-engines-modules/openl-tablets/pom.xml | 2 +- rule-engines-modules/rulebook/pom.xml | 2 +- spring-aop-2/pom.xml | 16 +++++++- spring-aop/pom.xml | 11 ++++- 9 files changed, 70 insertions(+), 26 deletions(-) diff --git a/couchbase/pom.xml b/couchbase/pom.xml index e87975a53c..095bda3610 100644 --- a/couchbase/pom.xml +++ b/couchbase/pom.xml @@ -64,11 +64,16 @@ ${commons-lang3.version} test + + javax.annotation + javax.annotation-api + 1.3.2 + - 2.5.0 - 4.3.5.RELEASE + 2.7.2 + 5.3.25 \ No newline at end of file diff --git a/libraries-testing/pom.xml b/libraries-testing/pom.xml index 2aaad59e09..9274c292ba 100644 --- a/libraries-testing/pom.xml +++ b/libraries-testing/pom.xml @@ -179,17 +179,16 @@ 1.9.9 1.9.0 1.9.0 - 1.9.27 + 3.6.12 1.5.0 3.0.0 0.8.1 4.3.8.RELEASE - 4.1.1 + 5.3.0 2.0.0.0 2.7.0 0.14.1 1.0.0 - 2.1.214 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 39720032ff..1efdb44fa0 100644 --- a/pom.xml +++ b/pom.xml @@ -337,6 +337,7 @@ core-java-modules + couchbase drools @@ -360,7 +361,7 @@ jaxb jersey jhipster-5 - jmeter + jmh jsf @@ -378,7 +379,6 @@ libraries-data-db libraries-security libraries-server-2 - libraries-testing logging-modules lombok-modules @@ -400,8 +400,6 @@ performance-tests persistence-modules - rule-engines-modules - security-modules vavr-modules @@ -455,7 +453,6 @@ spf4j spring-4 spring-aop - spring-aop-2 spring-batch spring-bom spring-boot-modules @@ -598,6 +595,7 @@ core-java-modules couchbase + drools @@ -618,7 +616,6 @@ jaxb jersey jhipster-5 - jmeter jmh jsf @@ -636,7 +633,6 @@ libraries-data-db libraries-security libraries-server-2 - libraries-testing logging-modules lombok-modules @@ -657,8 +653,6 @@ performance-tests persistence-modules - rule-engines-modules - security-modules vavr-modules @@ -703,8 +697,6 @@ server-modules spf4j spring-4 - spring-aop - spring-aop-2 spring-batch spring-bom spring-boot-modules @@ -859,6 +851,9 @@ + spring-aop + jmeter + spring-aop-2 algorithms-modules apache-libraries apache-poi @@ -866,7 +861,10 @@ di-modules asciidoctor aws-modules + + couchbase core-groovy-modules + core-java-modules/core-java-9 core-java-modules/core-java-9-improvements core-java-modules/core-java-9-jigsaw @@ -904,7 +902,7 @@ core-java-modules/core-java-networking-3 core-java-modules/core-java-strings core-java-modules/core-java-httpclient - custom-pmd + custom-pmd spring-core-6 data-structures ddd-contexts @@ -914,6 +912,7 @@ apache-httpclient-2 kubernetes-modules/kubernetes-spring libraries-concurrency + libraries-testing maven-modules/compiler-plugin-java-9 maven-modules/maven-generate-war maven-modules/multimodulemavenproject @@ -930,8 +929,12 @@ spring-swagger-codegen/custom-validations-opeanpi-codegen testing-modules/testing-assertions persistence-modules/fauna + + rule-engines-modules + reactive-systems rxjava-modules + lightrun tablesaw geotools @@ -1045,7 +1048,8 @@ UTF-8 11 - 11 + 11 + 11 @@ -1079,6 +1083,9 @@ di-modules asciidoctor aws-modules + + couchbase + core-groovy-modules core-java-modules/core-java-9 core-java-modules/core-java-9-improvements @@ -1117,16 +1124,21 @@ core-java-modules/core-java-networking-3 core-java-modules/core-java-strings core-java-modules/core-java-httpclient - custom-pmd + spring-aop + spring-aop-2 + + custom-pmd spring-core-6 data-structures ddd-contexts deeplearning4j + jmeter docker-modules guava-modules apache-httpclient-2 kubernetes-modules/kubernetes-spring libraries-concurrency + libraries-testing maven-modules/compiler-plugin-java-9 maven-modules/maven-generate-war maven-modules/multimodulemavenproject @@ -1143,8 +1155,12 @@ spring-swagger-codegen/custom-validations-opeanpi-codegen testing-modules/testing-assertions persistence-modules/fauna + + rule-engines-modules + reactive-systems rxjava-modules + lightrun tablesaw geotools @@ -1261,7 +1277,8 @@ UTF-8 11 - 11 + 11 + 11 diff --git a/rule-engines-modules/easy-rules/pom.xml b/rule-engines-modules/easy-rules/pom.xml index c8e875944c..6f43307e89 100644 --- a/rule-engines-modules/easy-rules/pom.xml +++ b/rule-engines-modules/easy-rules/pom.xml @@ -23,7 +23,7 @@ - 3.0.0 + 4.1.0 \ No newline at end of file diff --git a/rule-engines-modules/evrete/pom.xml b/rule-engines-modules/evrete/pom.xml index d94da2853f..5b7f195722 100644 --- a/rule-engines-modules/evrete/pom.xml +++ b/rule-engines-modules/evrete/pom.xml @@ -30,7 +30,7 @@ - 2.1.04 + 3.0.01 \ No newline at end of file diff --git a/rule-engines-modules/openl-tablets/pom.xml b/rule-engines-modules/openl-tablets/pom.xml index 204efce6c5..a24e06c44d 100644 --- a/rule-engines-modules/openl-tablets/pom.xml +++ b/rule-engines-modules/openl-tablets/pom.xml @@ -28,7 +28,7 @@ - 5.19.4 + 5.26.5 \ No newline at end of file diff --git a/rule-engines-modules/rulebook/pom.xml b/rule-engines-modules/rulebook/pom.xml index 55e312289e..88feb148e2 100644 --- a/rule-engines-modules/rulebook/pom.xml +++ b/rule-engines-modules/rulebook/pom.xml @@ -23,7 +23,7 @@ - 0.6.2 + 0.12 \ No newline at end of file diff --git a/spring-aop-2/pom.xml b/spring-aop-2/pom.xml index 76e4780e72..cb84ed4ca2 100644 --- a/spring-aop-2/pom.xml +++ b/spring-aop-2/pom.xml @@ -39,8 +39,22 @@ + + + + org.apache.maven.plugins + maven-war-plugin + ${maven-war-plugin.version} + + false + + + + + - 1.11 + 1.14.0 + 3.3.2 \ No newline at end of file diff --git a/spring-aop/pom.xml b/spring-aop/pom.xml index 0d48c479ca..ae5ab5fce1 100644 --- a/spring-aop/pom.xml +++ b/spring-aop/pom.xml @@ -69,11 +69,20 @@ + + org.apache.maven.plugins + maven-war-plugin + ${maven-war-plugin.version} + + false + + - 1.11 + 1.14.0 + 3.3.2 \ No newline at end of file From b8bea1489d2d78631bebe7d6e101fdebe4a493c3 Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:53:46 +0200 Subject: [PATCH 13/15] [JAVA-18408] Comment out axon module (#13527) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1efdb44fa0..9ef2b0df97 100644 --- a/pom.xml +++ b/pom.xml @@ -958,7 +958,7 @@ asm atomikos atomix - axon + bazel code-generation @@ -1183,7 +1183,7 @@ asm atomikos atomix - axon + bazel code-generation From 0560ac2d9dbb3eac94cce1fa2196d1f9276f7868 Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:11:06 +0200 Subject: [PATCH 14/15] [JAVA-16398] Removed duplicate dependency (#13522) --- geotools/pom.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/geotools/pom.xml b/geotools/pom.xml index 6edb344c8c..f17b4cc5da 100644 --- a/geotools/pom.xml +++ b/geotools/pom.xml @@ -39,13 +39,6 @@ gt-swing ${geotools-swing.version} - - org.locationtech.jts - jts-core - 1.19.0 - - - From 73a6c2c8326982d0206221f2fa887ca98a0f1132 Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:12:26 +0200 Subject: [PATCH 15/15] =?UTF-8?q?[JAVA-18754]=20Upgraded=20to=20the=20late?= =?UTF-8?q?st=20version=20of=20commons-csv=20+=20Replaced=E2=80=A6=20(#134?= =?UTF-8?q?96)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [JAVA-18754] Upgraded to the latest version of commons-csv + Replaced deprecated method * [JAVA-18754] Removed setUp method --- libraries-apache-commons-io/pom.xml | 2 +- .../io/csv/CSVReaderWriterUnitTest.java | 54 +++++++++++++++---- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/libraries-apache-commons-io/pom.xml b/libraries-apache-commons-io/pom.xml index b45572ddad..7cac50a8e2 100644 --- a/libraries-apache-commons-io/pom.xml +++ b/libraries-apache-commons-io/pom.xml @@ -26,7 +26,7 @@ - 1.9.0 + 1.10.0 \ No newline at end of file diff --git a/libraries-apache-commons-io/src/test/java/com/baeldung/commons/io/csv/CSVReaderWriterUnitTest.java b/libraries-apache-commons-io/src/test/java/com/baeldung/commons/io/csv/CSVReaderWriterUnitTest.java index b99f4e8bc3..b37613e962 100644 --- a/libraries-apache-commons-io/src/test/java/com/baeldung/commons/io/csv/CSVReaderWriterUnitTest.java +++ b/libraries-apache-commons-io/src/test/java/com/baeldung/commons/io/csv/CSVReaderWriterUnitTest.java @@ -1,9 +1,11 @@ package com.baeldung.commons.io.csv; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVPrinter; import org.apache.commons.csv.CSVRecord; -import org.junit.Test; import java.io.FileReader; import java.io.IOException; @@ -13,9 +15,7 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; -import static org.junit.Assert.assertEquals; - -public class CSVReaderWriterUnitTest { +class CSVReaderWriterUnitTest { public static final Map AUTHOR_BOOK_MAP = Collections.unmodifiableMap(new LinkedHashMap() { { @@ -24,12 +24,24 @@ public class CSVReaderWriterUnitTest { } }); public static final String[] HEADERS = { "author", "title" }; + + enum BookHeaders{ + author, title + } + public static final String EXPECTED_FILESTREAM = "author,title\r\n" + "Dan Simmons,Hyperion\r\n" + "Douglas Adams,The Hitchhiker's Guide to the Galaxy"; @Test - public void givenCSVFile_whenRead_thenContentsAsExpected() throws IOException { + void givenCSVFile_whenReadWithArrayHeader_thenContentsAsExpected() throws IOException { Reader in = new FileReader("src/test/resources/book.csv"); - Iterable records = CSVFormat.DEFAULT.withHeader(HEADERS).withFirstRecordAsHeader().parse(in); + + CSVFormat csvFormat = CSVFormat.DEFAULT.builder() + .setHeader(HEADERS) + .setSkipHeaderRecord(true) + .build(); + + Iterable records = csvFormat.parse(in); + for (CSVRecord record : records) { String author = record.get("author"); String title = record.get("title"); @@ -38,9 +50,32 @@ public class CSVReaderWriterUnitTest { } @Test - public void givenAuthorBookMap_whenWrittenToStream_thenOutputStreamAsExpected() throws IOException { + void givenCSVFile_whenReadWithEnumHeader_thenContentsAsExpected() throws IOException { + Reader in = new FileReader("src/test/resources/book.csv"); + + CSVFormat csvFormat = CSVFormat.DEFAULT.builder() + .setHeader(BookHeaders.class) + .setSkipHeaderRecord(true) + .build(); + + Iterable records = csvFormat.parse(in); + + for (CSVRecord record : records) { + String author = record.get(BookHeaders.author); + String title = record.get(BookHeaders.title); + assertEquals(AUTHOR_BOOK_MAP.get(author), title); + } + } + + @Test + void givenAuthorBookMap_whenWrittenToStream_thenOutputStreamAsExpected() throws IOException { StringWriter sw = new StringWriter(); - try (final CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT.withHeader(HEADERS))) { + + CSVFormat csvFormat = CSVFormat.DEFAULT.builder() + .setHeader(BookHeaders.class) + .build(); + + try (final CSVPrinter printer = new CSVPrinter(sw, csvFormat)) { AUTHOR_BOOK_MAP.forEach((author, title) -> { try { printer.printRecord(author, title); @@ -49,7 +84,8 @@ public class CSVReaderWriterUnitTest { } }); } - assertEquals(EXPECTED_FILESTREAM, sw.toString().trim()); + assertEquals(EXPECTED_FILESTREAM, sw.toString() + .trim()); } }