From 62089a7abb94026c2ceaaf46979bf84edfbf498a Mon Sep 17 00:00:00 2001 From: catalin-burcea Date: Sun, 27 Oct 2019 11:09:34 +0200 Subject: [PATCH 1/7] Split or move java-streams module --- .../core-java-9-streams/README.md | 6 + core-java-modules/core-java-9-streams/pom.xml | 31 ++ .../streams}/breakforeach/CustomForEach.java | 2 +- .../breakforeach/CustomSpliterator.java | 2 +- .../breakforeach/CustomTakeWhile.java | 2 +- .../breakforeach/TakeWhileExample.java | 2 +- .../BreakFromStreamForEachUnitTest.java | 2 +- .../core-java-streams-2/README.md | 16 ++ .../core-java-streams-2}/pom.xml | 100 +++---- .../reduce/application/Application.java | 78 ++--- .../benchmarks/JMHStreamReduceBenchMark.java | 104 +++---- .../com/baeldung/reduce/entities/User.java | 50 ++-- .../reduce/utilities/NumberUtils.java | 104 +++---- .../streams}/MyImmutableListCollector.java | 2 +- .../src/main/resources/logback.xml | 0 .../IntStreamsConversionsUnitTest.java | 0 .../reduce}/StreamReduceUnitTest.java | 159 +++++----- .../java/com/baeldung/streams}/Detail.java | 2 +- .../Java8FindAnyFindFirstUnitTest.java | 2 +- .../streams/Java8StreamApiUnitTest.java | 3 +- .../streams}/Java8StreamsUnitTest.java | 3 +- .../com/baeldung/streams}/PeekUnitTest.java | 8 +- .../java/com/baeldung/streams}/Product.java | 2 +- .../baeldung/streams}/StreamAddUnitTest.java | 2 +- .../baeldung/streams}/StreamMapUnitTest.java | 5 +- .../streams}/StreamToImmutableUnitTest.java | 20 +- .../StreamOperateAndRemoveUnitTest.java | 12 +- .../core-java-streams-3/README.md | 11 + core-java-modules/core-java-streams-3/pom.xml | 53 ++++ .../streams}/forEach/ReverseList.java | 2 +- .../primitivestreams}/PrimitiveStreams.java | 2 +- .../src/main/resources/logback.xml | 13 + .../collectors/Java8CollectorsUnitTest.java | 2 +- .../StreamForEachIfElseUnitTest.java | 2 +- .../PrimitiveStreamsUnitTest.java | 8 +- .../core-java-streams}/.gitignore | 0 core-java-modules/core-java-streams/README.md | 19 +- core-java-modules/core-java-streams/pom.xml | 83 +++++- .../com/baeldung/stream/InfiniteStreams.java | 0 .../java/com/baeldung/stream/StreamApi.java | 0 .../com/baeldung/stream/StreamIndices.java | 0 .../com/baeldung/stream/filter/Customer.java | 0 .../baeldung/stream/sum/ArithmeticUtils.java | 16 +- .../java/com/baeldung/stream/sum/Item.java | 62 ++-- .../stream/sum/StreamSumCalculator.java | 118 ++++---- .../sum/StreamSumCalculatorWithObject.java | 76 ++--- .../IterableStreamConversionUnitTest.java | 2 +- .../protonpack/ProtonpackUnitTest.java | 0 .../stream/InfiniteStreamUnitTest.java | 0 .../baeldung/stream/StreamApiUnitTest.java | 0 .../stream/StreamIndicesUnitTest.java | 0 .../stream/SupplierStreamUnitTest.java | 68 ++--- .../stream/filter/StreamCountUnitTest.java | 0 .../stream/filter/StreamFilterUnitTest.java | 0 .../stream/sum/StreamSumUnitTest.java | 272 +++++++++--------- .../streamordering/BenchmarkManualTest.java | 0 .../StreamsOrderingUnitTest.java | 0 .../src/test/resources/.gitignore | 0 core-java-modules/core-java/README.md | 2 +- java-streams-2/README.md | 9 - .../com/baeldung/reduce/entities/User.java | 25 -- java-streams/README.md | 21 -- java-streams/pom.xml | 121 -------- .../reduce/application/Application.java | 70 ----- .../reduce/utilities/NumberUtils.java | 52 ---- .../reduce/tests/StreamReduceUnitTest.java | 79 ----- pom.xml | 20 +- 67 files changed, 881 insertions(+), 1046 deletions(-) create mode 100644 core-java-modules/core-java-9-streams/README.md create mode 100644 core-java-modules/core-java-9-streams/pom.xml rename {java-streams-2/src/main/java/com/baeldung => core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams}/breakforeach/CustomForEach.java (94%) rename {java-streams-2/src/main/java/com/baeldung => core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams}/breakforeach/CustomSpliterator.java (95%) rename {java-streams-2/src/main/java/com/baeldung => core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams}/breakforeach/CustomTakeWhile.java (90%) rename {java-streams-2/src/main/java/com/baeldung => core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams}/breakforeach/TakeWhileExample.java (94%) rename {java-streams-2/src/test/java/com/baeldung => core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams}/breakforeach/BreakFromStreamForEachUnitTest.java (96%) create mode 100644 core-java-modules/core-java-streams-2/README.md rename {java-streams-2 => core-java-modules/core-java-streams-2}/pom.xml (84%) rename {java-streams-2 => core-java-modules/core-java-streams-2}/src/main/java/com/baeldung/reduce/application/Application.java (97%) rename {java-streams-2 => core-java-modules/core-java-streams-2}/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java (97%) rename {java-streams => core-java-modules/core-java-streams-2}/src/main/java/com/baeldung/reduce/entities/User.java (94%) rename {java-streams-2 => core-java-modules/core-java-streams-2}/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java (97%) rename {java-streams/src/test/java/com/baeldung/stream/mycollectors => core-java-modules/core-java-streams-2/src/main/java/com/baeldung/streams}/MyImmutableListCollector.java (93%) rename {java-streams => core-java-modules/core-java-streams-2}/src/main/resources/logback.xml (100%) rename {java-streams-2 => core-java-modules/core-java-streams-2}/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java (100%) rename {java-streams-2/src/test/java/com/baeldung/reduce/tests => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/reduce}/StreamReduceUnitTest.java (95%) rename {java-streams/src/main/java/com/baeldung/java_8_features => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/Detail.java (85%) rename {java-streams/src/test/java/com/baeldung/java8 => core-java-modules/core-java-streams-2/src/test/java/com/baeldung}/streams/Java8FindAnyFindFirstUnitTest.java (97%) rename {java-streams/src/test/java/com/baeldung/java8 => core-java-modules/core-java-streams-2/src/test/java/com/baeldung}/streams/Java8StreamApiUnitTest.java (99%) rename {java-streams/src/test/java/com/baeldung/java8 => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/Java8StreamsUnitTest.java (97%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/PeekUnitTest.java (98%) rename {java-streams/src/main/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/Product.java (96%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/StreamAddUnitTest.java (97%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/StreamMapUnitTest.java (96%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams}/StreamToImmutableUnitTest.java (81%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/removeitem}/StreamOperateAndRemoveUnitTest.java (98%) create mode 100644 core-java-modules/core-java-streams-3/README.md create mode 100644 core-java-modules/core-java-streams-3/pom.xml rename core-java-modules/{core-java-streams/src/main/java/com/baeldung => core-java-streams-3/src/main/java/com/baeldung/streams}/forEach/ReverseList.java (98%) rename {java-streams/src/main/java/com/baeldung/stream => core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/primitivestreams}/PrimitiveStreams.java (90%) create mode 100644 core-java-modules/core-java-streams-3/src/main/resources/logback.xml rename core-java-modules/{core-java-streams/src/test/java/com/baeldung => core-java-streams-3/src/test/java/com/baeldung/streams}/collectors/Java8CollectorsUnitTest.java (99%) rename core-java-modules/{core-java-streams/src/test/java/com/baeldung/stream => core-java-streams-3/src/test/java/com/baeldung/streams}/conditional/StreamForEachIfElseUnitTest.java (96%) rename {java-streams/src/test/java/com/baeldung/stream => core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/primitivestreams}/PrimitiveStreamsUnitTest.java (98%) rename {java-streams => core-java-modules/core-java-streams}/.gitignore (100%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/InfiniteStreams.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/StreamApi.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/StreamIndices.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/filter/Customer.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java (94%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/sum/Item.java (94%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java (96%) rename {java-streams => core-java-modules/core-java-streams}/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java (96%) rename {java-streams/src/test/java/com/baeldung/java => core-java-modules/core-java-streams/src/test/java/com/baeldung}/conversion/IterableStreamConversionUnitTest.java (96%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/InfiniteStreamUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/StreamApiUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/StreamIndicesUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java (97%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/filter/StreamCountUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/filter/StreamFilterUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java (97%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/streamordering/BenchmarkManualTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/java/com/baeldung/streamordering/StreamsOrderingUnitTest.java (100%) rename {java-streams => core-java-modules/core-java-streams}/src/test/resources/.gitignore (100%) delete mode 100644 java-streams-2/README.md delete mode 100644 java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java delete mode 100644 java-streams/README.md delete mode 100644 java-streams/pom.xml delete mode 100644 java-streams/src/main/java/com/baeldung/reduce/application/Application.java delete mode 100644 java-streams/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java delete mode 100644 java-streams/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java diff --git a/core-java-modules/core-java-9-streams/README.md b/core-java-modules/core-java-9-streams/README.md new file mode 100644 index 0000000000..0ad8500689 --- /dev/null +++ b/core-java-modules/core-java-9-streams/README.md @@ -0,0 +1,6 @@ +## Core Java 9 streams + +This module contains articles about Java 9 streams + +### Relevant Articles: +- [How to Break from Java Stream forEach](https://www.baeldung.com/java-break-stream-foreach) diff --git a/core-java-modules/core-java-9-streams/pom.xml b/core-java-modules/core-java-9-streams/pom.xml new file mode 100644 index 0000000000..6e167caf9c --- /dev/null +++ b/core-java-modules/core-java-9-streams/pom.xml @@ -0,0 +1,31 @@ + + 4.0.0 + core-java-9-streams + 0.1.0-SNAPSHOT + core-java-9-streams + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + + + core-java-9-streams + + + src/main/resources + true + + + + + + + diff --git a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomForEach.java b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomForEach.java similarity index 94% rename from java-streams-2/src/main/java/com/baeldung/breakforeach/CustomForEach.java rename to core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomForEach.java index 1f8866b16c..357571f092 100644 --- a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomForEach.java +++ b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomForEach.java @@ -1,4 +1,4 @@ -package com.baeldung.breakforeach; +package com.baeldung.streams.breakforeach; import java.util.Spliterator; import java.util.function.BiConsumer; diff --git a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomSpliterator.java b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomSpliterator.java similarity index 95% rename from java-streams-2/src/main/java/com/baeldung/breakforeach/CustomSpliterator.java rename to core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomSpliterator.java index cfe4bedac3..1844a3dc37 100644 --- a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomSpliterator.java +++ b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomSpliterator.java @@ -1,4 +1,4 @@ -package com.baeldung.breakforeach; +package com.baeldung.streams.breakforeach; import java.util.Spliterator; import java.util.Spliterators; diff --git a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomTakeWhile.java b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomTakeWhile.java similarity index 90% rename from java-streams-2/src/main/java/com/baeldung/breakforeach/CustomTakeWhile.java rename to core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomTakeWhile.java index 05574f9ae6..1852df3d9c 100644 --- a/java-streams-2/src/main/java/com/baeldung/breakforeach/CustomTakeWhile.java +++ b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/CustomTakeWhile.java @@ -1,4 +1,4 @@ -package com.baeldung.breakforeach; +package com.baeldung.streams.breakforeach; import java.util.function.Predicate; import java.util.stream.Stream; diff --git a/java-streams-2/src/main/java/com/baeldung/breakforeach/TakeWhileExample.java b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/TakeWhileExample.java similarity index 94% rename from java-streams-2/src/main/java/com/baeldung/breakforeach/TakeWhileExample.java rename to core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/TakeWhileExample.java index 1838ae5fb7..3a16c9d691 100644 --- a/java-streams-2/src/main/java/com/baeldung/breakforeach/TakeWhileExample.java +++ b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/breakforeach/TakeWhileExample.java @@ -1,4 +1,4 @@ -package com.baeldung.breakforeach; +package com.baeldung.streams.breakforeach; import java.util.List; import java.util.stream.Stream; diff --git a/java-streams-2/src/test/java/com/baeldung/breakforeach/BreakFromStreamForEachUnitTest.java b/core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/breakforeach/BreakFromStreamForEachUnitTest.java similarity index 96% rename from java-streams-2/src/test/java/com/baeldung/breakforeach/BreakFromStreamForEachUnitTest.java rename to core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/breakforeach/BreakFromStreamForEachUnitTest.java index 23653c0a39..66d293b3fa 100644 --- a/java-streams-2/src/test/java/com/baeldung/breakforeach/BreakFromStreamForEachUnitTest.java +++ b/core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/breakforeach/BreakFromStreamForEachUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.breakforeach; +package com.baeldung.streams.breakforeach; import org.junit.Test; diff --git a/core-java-modules/core-java-streams-2/README.md b/core-java-modules/core-java-streams-2/README.md new file mode 100644 index 0000000000..2ff95045c3 --- /dev/null +++ b/core-java-modules/core-java-streams-2/README.md @@ -0,0 +1,16 @@ +## Core Java streams + +This module contains articles about the Stream API in Java. + +### Relevant Articles: +- [The Java 8 Stream API Tutorial](https://www.baeldung.com/java-8-streams) +- [Introduction to Java 8 Streams](https://www.baeldung.com/java-8-streams-introduction) +- [Java 8 Stream findFirst() vs. findAny()](https://www.baeldung.com/java-stream-findfirst-vs-findany) +- [Guide to Stream.reduce()](https://www.baeldung.com/java-stream-reduce) +- [Java IntStream Conversions](https://www.baeldung.com/java-intstream-convert) +- [Java 8 Streams peek() API](https://www.baeldung.com/java-streams-peek-api) +- [Working With Maps Using Streams](https://www.baeldung.com/java-maps-streams) +- [Collect a Java Stream to an Immutable Collection](https://www.baeldung.com/java-stream-immutable-collection) +- [How to Add a Single Element to a Stream](https://www.baeldung.com/java-stream-append-prepend) +- [Operating on and Removing an Item from Stream](https://www.baeldung.com/java-use-remove-item-stream) +- More articles: [[<-- prev>]](/../core-java-streams) [[next -->]](/../core-java-streams-3) diff --git a/java-streams-2/pom.xml b/core-java-modules/core-java-streams-2/pom.xml similarity index 84% rename from java-streams-2/pom.xml rename to core-java-modules/core-java-streams-2/pom.xml index 4cebd44427..20c028edaa 100644 --- a/java-streams-2/pom.xml +++ b/core-java-modules/core-java-streams-2/pom.xml @@ -1,49 +1,53 @@ - - - 4.0.0 - com.baeldung.javastreams2 - java-streams-2 - 1.0 - java-streams-2 - jar - - - com.baeldung - parent-java - 0.0.1-SNAPSHOT - ../parent-java - - - - - org.openjdk.jmh - jmh-core - ${jmh-core.version} - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh-generator.version} - - - junit - junit - ${junit.version} - test - jar - - - org.assertj - assertj-core - ${assertj.version} - test - - - - - UTF-8 - 1.9 - 1.9 - 3.11.1 - + + + 4.0.0 + core-java-streams-2 + 1.0 + core-java-streams-2 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-generator.version} + + + log4j + log4j + ${log4j.version} + + + junit + junit + ${junit.version} + test + jar + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + UTF-8 + 1.9 + 1.9 + 3.11.1 + \ No newline at end of file diff --git a/java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java similarity index 97% rename from java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java rename to core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java index 79c557524d..62d080c32c 100644 --- a/java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java +++ b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/application/Application.java @@ -1,39 +1,39 @@ -package com.baeldung.reduce.application; - -import com.baeldung.reduce.entities.User; -import com.baeldung.reduce.utilities.NumberUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Application { - - public static void main(String[] args) { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result1 = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element); - System.out.println(result1); - - int result2 = numbers.stream().reduce(0, Integer::sum); - System.out.println(result2); - - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result3 = letters.stream().reduce("", (partialString, element) -> partialString + element); - System.out.println(result3); - - String result4 = letters.stream().reduce("", String::concat); - System.out.println(result4); - - String result5 = letters.stream().reduce("", (partialString, element) -> partialString.toUpperCase() + element.toUpperCase()); - System.out.println(result5); - - List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); - int result6 = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - System.out.println(result6); - - String result7 = letters.parallelStream().reduce("", String::concat); - System.out.println(result7); - - int result8 = users.parallelStream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - System.out.println(result8); - } -} +package com.baeldung.reduce.application; + +import com.baeldung.reduce.entities.User; +import com.baeldung.reduce.utilities.NumberUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Application { + + public static void main(String[] args) { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + int result1 = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element); + System.out.println(result1); + + int result2 = numbers.stream().reduce(0, Integer::sum); + System.out.println(result2); + + List letters = Arrays.asList("a", "b", "c", "d", "e"); + String result3 = letters.stream().reduce("", (partialString, element) -> partialString + element); + System.out.println(result3); + + String result4 = letters.stream().reduce("", String::concat); + System.out.println(result4); + + String result5 = letters.stream().reduce("", (partialString, element) -> partialString.toUpperCase() + element.toUpperCase()); + System.out.println(result5); + + List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); + int result6 = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); + System.out.println(result6); + + String result7 = letters.parallelStream().reduce("", String::concat); + System.out.println(result7); + + int result8 = users.parallelStream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); + System.out.println(result8); + } +} diff --git a/java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java similarity index 97% rename from java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java rename to core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java index af4a9276a9..ecb0347e96 100644 --- a/java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java +++ b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/benchmarks/JMHStreamReduceBenchMark.java @@ -1,52 +1,52 @@ -package com.baeldung.reduce.benchmarks; - -import com.baeldung.reduce.entities.User; -import java.util.ArrayList; -import java.util.List; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.runner.Runner; -import org.openjdk.jmh.runner.RunnerException; -import org.openjdk.jmh.runner.options.Options; -import org.openjdk.jmh.runner.options.OptionsBuilder; - -@State(Scope.Thread) -@BenchmarkMode(Mode.AverageTime) -public class JMHStreamReduceBenchMark { - - private final List userList = createUsers(); - - public static void main(String[] args) throws RunnerException { - - Options options = new OptionsBuilder() - .include(JMHStreamReduceBenchMark.class.getSimpleName()).threads(1) - .forks(1).shouldFailOnError(true).shouldDoGC(true) - .jvmArgs("-server").build(); - new Runner(options).run(); - } - - private List createUsers() { - List users = new ArrayList<>(); - for (int i = 0; i <= 1000000; i++) { - users.add(new User("John" + i, i)); - } - return users; - } - - @Benchmark - public Integer executeReduceOnParallelizedStream() { - return this.userList - .parallelStream() - .reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - } - - @Benchmark - public Integer executeReduceOnSequentialStream() { - return this.userList - .stream() - .reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - } -} +package com.baeldung.reduce.benchmarks; + +import com.baeldung.reduce.entities.User; +import java.util.ArrayList; +import java.util.List; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.RunnerException; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; + +@State(Scope.Thread) +@BenchmarkMode(Mode.AverageTime) +public class JMHStreamReduceBenchMark { + + private final List userList = createUsers(); + + public static void main(String[] args) throws RunnerException { + + Options options = new OptionsBuilder() + .include(JMHStreamReduceBenchMark.class.getSimpleName()).threads(1) + .forks(1).shouldFailOnError(true).shouldDoGC(true) + .jvmArgs("-server").build(); + new Runner(options).run(); + } + + private List createUsers() { + List users = new ArrayList<>(); + for (int i = 0; i <= 1000000; i++) { + users.add(new User("John" + i, i)); + } + return users; + } + + @Benchmark + public Integer executeReduceOnParallelizedStream() { + return this.userList + .parallelStream() + .reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); + } + + @Benchmark + public Integer executeReduceOnSequentialStream() { + return this.userList + .stream() + .reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); + } +} diff --git a/java-streams/src/main/java/com/baeldung/reduce/entities/User.java b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java similarity index 94% rename from java-streams/src/main/java/com/baeldung/reduce/entities/User.java rename to core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java index a17c6a02b6..6e0a529de6 100644 --- a/java-streams/src/main/java/com/baeldung/reduce/entities/User.java +++ b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java @@ -1,25 +1,25 @@ -package com.baeldung.reduce.entities; - -public class User { - - private final String name; - private final int age; - - public User(String name, int age) { - this.name = name; - this.age = age; - } - - public String getName() { - return name; - } - - public int getAge() { - return age; - } - - @Override - public String toString() { - return "User{" + "name=" + name + ", age=" + age + '}'; - } -} +package com.baeldung.reduce.entities; + +public class User { + + private final String name; + private final int age; + + public User(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + @Override + public String toString() { + return "User{" + "name=" + name + ", age=" + age + '}'; + } +} diff --git a/java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java similarity index 97% rename from java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java rename to core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java index a7a4b8df29..38d5b50120 100644 --- a/java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java +++ b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java @@ -1,52 +1,52 @@ -package com.baeldung.reduce.utilities; - -import java.util.List; -import java.util.function.BiFunction; -import java.util.logging.Level; -import java.util.logging.Logger; - -public abstract class NumberUtils { - - private static final Logger LOGGER = Logger.getLogger(NumberUtils.class.getName()); - - public static int divideListElements(List values, Integer divider) { - return values.stream() - .reduce(0, (a, b) -> { - try { - return a / divider + b / divider; - } catch (ArithmeticException e) { - LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); - } - return 0; - }); - } - - public static int divideListElementsWithExtractedTryCatchBlock(List values, int divider) { - return values.stream().reduce(0, (a, b) -> divide(a, divider) + divide(b, divider)); - } - - public static int divideListElementsWithApplyFunctionMethod(List values, int divider) { - BiFunction division = (a, b) -> a / b; - return values.stream().reduce(0, (a, b) -> applyFunction(division, a, divider) + applyFunction(division, b, divider)); - } - - private static int divide(int value, int factor) { - int result = 0; - try { - result = value / factor; - } catch (ArithmeticException e) { - LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); - } - return result; - } - - private static int applyFunction(BiFunction function, int a, int b) { - try { - return function.apply(a, b); - } - catch(Exception e) { - LOGGER.log(Level.INFO, "Exception thrown!"); - } - return 0; - } -} +package com.baeldung.reduce.utilities; + +import java.util.List; +import java.util.function.BiFunction; +import java.util.logging.Level; +import java.util.logging.Logger; + +public abstract class NumberUtils { + + private static final Logger LOGGER = Logger.getLogger(NumberUtils.class.getName()); + + public static int divideListElements(List values, Integer divider) { + return values.stream() + .reduce(0, (a, b) -> { + try { + return a / divider + b / divider; + } catch (ArithmeticException e) { + LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); + } + return 0; + }); + } + + public static int divideListElementsWithExtractedTryCatchBlock(List values, int divider) { + return values.stream().reduce(0, (a, b) -> divide(a, divider) + divide(b, divider)); + } + + public static int divideListElementsWithApplyFunctionMethod(List values, int divider) { + BiFunction division = (a, b) -> a / b; + return values.stream().reduce(0, (a, b) -> applyFunction(division, a, divider) + applyFunction(division, b, divider)); + } + + private static int divide(int value, int factor) { + int result = 0; + try { + result = value / factor; + } catch (ArithmeticException e) { + LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); + } + return result; + } + + private static int applyFunction(BiFunction function, int a, int b) { + try { + return function.apply(a, b); + } + catch(Exception e) { + LOGGER.log(Level.INFO, "Exception thrown!"); + } + return 0; + } +} diff --git a/java-streams/src/test/java/com/baeldung/stream/mycollectors/MyImmutableListCollector.java b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/streams/MyImmutableListCollector.java similarity index 93% rename from java-streams/src/test/java/com/baeldung/stream/mycollectors/MyImmutableListCollector.java rename to core-java-modules/core-java-streams-2/src/main/java/com/baeldung/streams/MyImmutableListCollector.java index cf6b3601c3..6d515bfb46 100644 --- a/java-streams/src/test/java/com/baeldung/stream/mycollectors/MyImmutableListCollector.java +++ b/core-java-modules/core-java-streams-2/src/main/java/com/baeldung/streams/MyImmutableListCollector.java @@ -1,4 +1,4 @@ -package com.baeldung.stream.mycollectors; +package com.baeldung.streams; import java.util.ArrayList; import java.util.Collections; diff --git a/java-streams/src/main/resources/logback.xml b/core-java-modules/core-java-streams-2/src/main/resources/logback.xml similarity index 100% rename from java-streams/src/main/resources/logback.xml rename to core-java-modules/core-java-streams-2/src/main/resources/logback.xml diff --git a/java-streams-2/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java similarity index 100% rename from java-streams-2/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/convert/intstreams/IntStreamsConversionsUnitTest.java diff --git a/java-streams-2/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/reduce/StreamReduceUnitTest.java similarity index 95% rename from java-streams-2/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/reduce/StreamReduceUnitTest.java index 564d614017..21eedf953e 100644 --- a/java-streams-2/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/reduce/StreamReduceUnitTest.java @@ -1,79 +1,80 @@ -package com.baeldung.reduce.tests; - -import com.baeldung.reduce.entities.User; -import com.baeldung.reduce.utilities.NumberUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import static org.assertj.core.api.Assertions.assertThat; -import org.junit.Test; - -public class StreamReduceUnitTest { - - @Test - public void givenIntegerList_whenReduceWithSumAccumulatorLambda_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element); - assertThat(result).isEqualTo(21); - } - - @Test - public void givenIntegerList_whenReduceWithSumAccumulatorMethodReference_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result = numbers.stream().reduce(0, Integer::sum); - assertThat(result).isEqualTo(21); - } - - @Test - public void givenStringList_whenReduceWithConcatenatorAccumulatorLambda_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", (partialString, element) -> partialString + element); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenStringList_whenReduceWithConcatenatorAccumulatorMethodReference_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", String::concat); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenStringList_whenReduceWithUppercaseConcatenatorAccumulator_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", (partialString, element) -> partialString.toUpperCase() + element.toUpperCase()); - assertThat(result).isEqualTo("ABCDE"); - } - - @Test - public void givenUserList_whenReduceWithAgeAccumulatorAndSumCombiner_thenCorrect() { - List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); - int result = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - assertThat(result).isEqualTo(65); - } - - @Test - public void givenStringList_whenReduceWithParallelStream_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.parallelStream().reduce("", String::concat); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenNumberUtilsClass_whenCalledDivideListElements_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElements(numbers, 1)).isEqualTo(21); - } - - @Test - public void givenNumberUtilsClass_whenCalledDivideListElementsWithExtractedTryCatchBlock_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElementsWithExtractedTryCatchBlock(numbers, 1)).isEqualTo(21); - } - - @Test - public void givenStream_whneCalleddivideListElementsWithApplyFunctionMethod_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElementsWithApplyFunctionMethod(numbers, 1)).isEqualTo(21); - } -} +package com.baeldung.reduce; + +import com.baeldung.reduce.entities.User; +import com.baeldung.reduce.utilities.NumberUtils; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class StreamReduceUnitTest { + + @Test + public void givenIntegerList_whenReduceWithSumAccumulatorLambda_thenCorrect() { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + int result = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element); + assertThat(result).isEqualTo(21); + } + + @Test + public void givenIntegerList_whenReduceWithSumAccumulatorMethodReference_thenCorrect() { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + int result = numbers.stream().reduce(0, Integer::sum); + assertThat(result).isEqualTo(21); + } + + @Test + public void givenStringList_whenReduceWithConcatenatorAccumulatorLambda_thenCorrect() { + List letters = Arrays.asList("a", "b", "c", "d", "e"); + String result = letters.stream().reduce("", (partialString, element) -> partialString + element); + assertThat(result).isEqualTo("abcde"); + } + + @Test + public void givenStringList_whenReduceWithConcatenatorAccumulatorMethodReference_thenCorrect() { + List letters = Arrays.asList("a", "b", "c", "d", "e"); + String result = letters.stream().reduce("", String::concat); + assertThat(result).isEqualTo("abcde"); + } + + @Test + public void givenStringList_whenReduceWithUppercaseConcatenatorAccumulator_thenCorrect() { + List letters = Arrays.asList("a", "b", "c", "d", "e"); + String result = letters.stream().reduce("", (partialString, element) -> partialString.toUpperCase() + element.toUpperCase()); + assertThat(result).isEqualTo("ABCDE"); + } + + @Test + public void givenUserList_whenReduceWithAgeAccumulatorAndSumCombiner_thenCorrect() { + List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); + int result = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); + assertThat(result).isEqualTo(65); + } + + @Test + public void givenStringList_whenReduceWithParallelStream_thenCorrect() { + List letters = Arrays.asList("a", "b", "c", "d", "e"); + String result = letters.parallelStream().reduce("", String::concat); + assertThat(result).isEqualTo("abcde"); + } + + @Test + public void givenNumberUtilsClass_whenCalledDivideListElements_thenCorrect() { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + assertThat(NumberUtils.divideListElements(numbers, 1)).isEqualTo(21); + } + + @Test + public void givenNumberUtilsClass_whenCalledDivideListElementsWithExtractedTryCatchBlock_thenCorrect() { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + assertThat(NumberUtils.divideListElementsWithExtractedTryCatchBlock(numbers, 1)).isEqualTo(21); + } + + @Test + public void givenStream_whneCalleddivideListElementsWithApplyFunctionMethod_thenCorrect() { + List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); + assertThat(NumberUtils.divideListElementsWithApplyFunctionMethod(numbers, 1)).isEqualTo(21); + } +} diff --git a/java-streams/src/main/java/com/baeldung/java_8_features/Detail.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Detail.java similarity index 85% rename from java-streams/src/main/java/com/baeldung/java_8_features/Detail.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Detail.java index 811937dba7..d2f5774b24 100644 --- a/java-streams/src/main/java/com/baeldung/java_8_features/Detail.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Detail.java @@ -1,4 +1,4 @@ -package com.baeldung.java_8_features; +package com.baeldung.streams; import java.util.Arrays; import java.util.List; diff --git a/java-streams/src/test/java/com/baeldung/java8/streams/Java8FindAnyFindFirstUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8FindAnyFindFirstUnitTest.java similarity index 97% rename from java-streams/src/test/java/com/baeldung/java8/streams/Java8FindAnyFindFirstUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8FindAnyFindFirstUnitTest.java index 5f52fe375e..934d7b3542 100644 --- a/java-streams/src/test/java/com/baeldung/java8/streams/Java8FindAnyFindFirstUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8FindAnyFindFirstUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java8.streams; +package com.baeldung.streams; import org.junit.Test; diff --git a/java-streams/src/test/java/com/baeldung/java8/streams/Java8StreamApiUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamApiUnitTest.java similarity index 99% rename from java-streams/src/test/java/com/baeldung/java8/streams/Java8StreamApiUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamApiUnitTest.java index 75cfbc049f..c4e1f2b3cb 100644 --- a/java-streams/src/test/java/com/baeldung/java8/streams/Java8StreamApiUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamApiUnitTest.java @@ -1,6 +1,5 @@ -package com.baeldung.java8.streams; +package com.baeldung.streams; -import com.baeldung.stream.Product; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; diff --git a/java-streams/src/test/java/com/baeldung/java8/Java8StreamsUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamsUnitTest.java similarity index 97% rename from java-streams/src/test/java/com/baeldung/java8/Java8StreamsUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamsUnitTest.java index e40f9f9506..f46fa79b08 100644 --- a/java-streams/src/test/java/com/baeldung/java8/Java8StreamsUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Java8StreamsUnitTest.java @@ -1,6 +1,5 @@ -package com.baeldung.java8; +package com.baeldung.streams; -import com.baeldung.java_8_features.Detail; import org.junit.Before; import org.junit.Test; diff --git a/java-streams/src/test/java/com/baeldung/stream/PeekUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/PeekUnitTest.java similarity index 98% rename from java-streams/src/test/java/com/baeldung/stream/PeekUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/PeekUnitTest.java index a3a2816e9c..97af4149d3 100644 --- a/java-streams/src/test/java/com/baeldung/stream/PeekUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/PeekUnitTest.java @@ -1,13 +1,13 @@ -package com.baeldung.stream; +package com.baeldung.streams; -import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.io.StringWriter; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThat; public class PeekUnitTest { diff --git a/java-streams/src/main/java/com/baeldung/stream/Product.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Product.java similarity index 96% rename from java-streams/src/main/java/com/baeldung/stream/Product.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Product.java index e99a969b81..7883f055a1 100644 --- a/java-streams/src/main/java/com/baeldung/stream/Product.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/Product.java @@ -1,4 +1,4 @@ -package com.baeldung.stream; +package com.baeldung.streams; import java.util.List; import java.util.stream.Stream; diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamAddUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamAddUnitTest.java similarity index 97% rename from java-streams/src/test/java/com/baeldung/stream/StreamAddUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamAddUnitTest.java index d0745b8bc9..1fada26de5 100644 --- a/java-streams/src/test/java/com/baeldung/stream/StreamAddUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamAddUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.stream; +package com.baeldung.streams; import org.junit.Test; diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamMapUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamMapUnitTest.java similarity index 96% rename from java-streams/src/test/java/com/baeldung/stream/StreamMapUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamMapUnitTest.java index 5cb2a274d1..509a3a3569 100644 --- a/java-streams/src/test/java/com/baeldung/stream/StreamMapUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamMapUnitTest.java @@ -1,16 +1,13 @@ -package com.baeldung.stream; +package com.baeldung.streams; import org.junit.Before; import org.junit.Test; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.Stream; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamToImmutableUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamToImmutableUnitTest.java similarity index 81% rename from java-streams/src/test/java/com/baeldung/stream/StreamToImmutableUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamToImmutableUnitTest.java index bd540201d2..e5339d8327 100644 --- a/java-streams/src/test/java/com/baeldung/stream/StreamToImmutableUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/StreamToImmutableUnitTest.java @@ -1,20 +1,12 @@ -package com.baeldung.stream; - -import static java.util.stream.Collectors.collectingAndThen; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toSet; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.stream.IntStream; +package com.baeldung.streams; +import com.google.common.collect.ImmutableList; import org.junit.Test; -import com.baeldung.stream.mycollectors.MyImmutableListCollector; -import com.google.common.collect.ImmutableList; +import java.util.*; +import java.util.stream.IntStream; + +import static java.util.stream.Collectors.*; public class StreamToImmutableUnitTest { diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamOperateAndRemoveUnitTest.java b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/removeitem/StreamOperateAndRemoveUnitTest.java similarity index 98% rename from java-streams/src/test/java/com/baeldung/stream/StreamOperateAndRemoveUnitTest.java rename to core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/removeitem/StreamOperateAndRemoveUnitTest.java index c5aa9a1651..194d0bd4d6 100644 --- a/java-streams/src/test/java/com/baeldung/stream/StreamOperateAndRemoveUnitTest.java +++ b/core-java-modules/core-java-streams-2/src/test/java/com/baeldung/streams/removeitem/StreamOperateAndRemoveUnitTest.java @@ -1,9 +1,4 @@ -package com.baeldung.stream; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Collectors; +package com.baeldung.streams.removeitem; import org.junit.Assert; import org.junit.Before; @@ -11,6 +6,11 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + public class StreamOperateAndRemoveUnitTest { private List itemList; diff --git a/core-java-modules/core-java-streams-3/README.md b/core-java-modules/core-java-streams-3/README.md new file mode 100644 index 0000000000..4b2c9ed94c --- /dev/null +++ b/core-java-modules/core-java-streams-3/README.md @@ -0,0 +1,11 @@ +## Core Java streams + +This module contains articles about the Stream API in Java. + +### Relevant Articles: +- [The Difference Between map() and flatMap()](https://www.baeldung.com/java-difference-map-and-flatmap) +- [How to Use if/else Logic in Java 8 Streams](https://www.baeldung.com/java-8-streams-if-else-logic) +- [The Difference Between Collection.stream().forEach() and Collection.forEach()](https://www.baeldung.com/java-collection-stream-foreach) +- [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) +- [Primitive Type Streams in Java 8](https://www.baeldung.com/java-8-primitive-streams) +- More articles: [[<-- prev>]](/../core-java-streams-2) \ No newline at end of file diff --git a/core-java-modules/core-java-streams-3/pom.xml b/core-java-modules/core-java-streams-3/pom.xml new file mode 100644 index 0000000000..b5b21a4368 --- /dev/null +++ b/core-java-modules/core-java-streams-3/pom.xml @@ -0,0 +1,53 @@ + + 4.0.0 + core-java-streams-3 + 0.1.0-SNAPSHOT + core-java-streams-3 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + org.projectlombok + lombok + ${lombok.version} + provided + + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + core-java-streams-3 + + + src/main/resources + true + + + + + + + 3.6.1 + + 2.22.1 + + diff --git a/core-java-modules/core-java-streams/src/main/java/com/baeldung/forEach/ReverseList.java b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/forEach/ReverseList.java similarity index 98% rename from core-java-modules/core-java-streams/src/main/java/com/baeldung/forEach/ReverseList.java rename to core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/forEach/ReverseList.java index b2ce77a9f6..c4128d9b72 100644 --- a/core-java-modules/core-java-streams/src/main/java/com/baeldung/forEach/ReverseList.java +++ b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/forEach/ReverseList.java @@ -1,4 +1,4 @@ -package com.baeldung.forEach; +package com.baeldung.streams.forEach; import java.util.ArrayList; import java.util.Arrays; diff --git a/java-streams/src/main/java/com/baeldung/stream/PrimitiveStreams.java b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/primitivestreams/PrimitiveStreams.java similarity index 90% rename from java-streams/src/main/java/com/baeldung/stream/PrimitiveStreams.java rename to core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/primitivestreams/PrimitiveStreams.java index b0afb65a35..fb2001f10f 100644 --- a/java-streams/src/main/java/com/baeldung/stream/PrimitiveStreams.java +++ b/core-java-modules/core-java-streams-3/src/main/java/com/baeldung/streams/primitivestreams/PrimitiveStreams.java @@ -1,4 +1,4 @@ -package com.baeldung.stream; +package com.baeldung.streams.primitivestreams; import java.util.Arrays; import java.util.stream.IntStream; diff --git a/core-java-modules/core-java-streams-3/src/main/resources/logback.xml b/core-java-modules/core-java-streams-3/src/main/resources/logback.xml new file mode 100644 index 0000000000..7d900d8ea8 --- /dev/null +++ b/core-java-modules/core-java-streams-3/src/main/resources/logback.xml @@ -0,0 +1,13 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/core-java-modules/core-java-streams/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/collectors/Java8CollectorsUnitTest.java similarity index 99% rename from core-java-modules/core-java-streams/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java rename to core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/collectors/Java8CollectorsUnitTest.java index e742635758..6afc9f4182 100644 --- a/core-java-modules/core-java-streams/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java +++ b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/collectors/Java8CollectorsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.collectors; +package com.baeldung.streams.collectors; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/conditional/StreamForEachIfElseUnitTest.java b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/conditional/StreamForEachIfElseUnitTest.java similarity index 96% rename from core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/conditional/StreamForEachIfElseUnitTest.java rename to core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/conditional/StreamForEachIfElseUnitTest.java index b5d26eb6a8..a49a092864 100644 --- a/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/conditional/StreamForEachIfElseUnitTest.java +++ b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/conditional/StreamForEachIfElseUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.stream.conditional; +package com.baeldung.streams.conditional; import java.util.Arrays; import java.util.List; diff --git a/java-streams/src/test/java/com/baeldung/stream/PrimitiveStreamsUnitTest.java b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/primitivestreams/PrimitiveStreamsUnitTest.java similarity index 98% rename from java-streams/src/test/java/com/baeldung/stream/PrimitiveStreamsUnitTest.java rename to core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/primitivestreams/PrimitiveStreamsUnitTest.java index 67954f0bba..18966425e4 100644 --- a/java-streams/src/test/java/com/baeldung/stream/PrimitiveStreamsUnitTest.java +++ b/core-java-modules/core-java-streams-3/src/test/java/com/baeldung/streams/primitivestreams/PrimitiveStreamsUnitTest.java @@ -1,14 +1,14 @@ -package com.baeldung.stream; +package com.baeldung.streams.primitivestreams; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import org.junit.Test; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; -import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class PrimitiveStreamsUnitTest { diff --git a/java-streams/.gitignore b/core-java-modules/core-java-streams/.gitignore similarity index 100% rename from java-streams/.gitignore rename to core-java-modules/core-java-streams/.gitignore diff --git a/core-java-modules/core-java-streams/README.md b/core-java-modules/core-java-streams/README.md index e97641c221..e556c231fe 100644 --- a/core-java-modules/core-java-streams/README.md +++ b/core-java-modules/core-java-streams/README.md @@ -1,9 +1,16 @@ -========= +## Core Java streams -## Core Java 8 Cookbooks and Examples +This module contains articles about the Stream API in Java. ### Relevant Articles: -- [The Difference Between map() and flatMap()](https://www.baeldung.com/java-difference-map-and-flatmap) -- [How to Use if/else Logic in Java 8 Streams](https://www.baeldung.com/java-8-streams-if-else-logic) -- [The Difference Between Collection.stream().forEach() and Collection.forEach()](https://www.baeldung.com/java-collection-stream-foreach) -- [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) \ No newline at end of file +- [Java 8 and Infinite Streams](https://www.baeldung.com/java-inifinite-streams) +- [How to Get the Last Element of a Stream in Java?](https://www.baeldung.com/java-stream-last-element) +- [“Stream has already been operated upon or closed” Exception in Java](https://www.baeldung.com/java-stream-operated-upon-or-closed-exception) +- [Iterable to Stream in Java](https://www.baeldung.com/java-iterable-to-stream) +- [How to Iterate Over a Stream With Indices](https://www.baeldung.com/java-stream-indices) +- [Stream Ordering in Java](https://www.baeldung.com/java-stream-ordering) +- [Introduction to Protonpack](https://www.baeldung.com/java-protonpack) +- [Java Stream Filter with Lambda Expression](https://www.baeldung.com/java-stream-filter-lambda) +- [Counting Matches on a Stream Filter](https://www.baeldung.com/java-stream-filter-count) +- [Summing Numbers with Java Streams](https://www.baeldung.com/java-stream-sum) +- More articles: [[next -->]](/../core-java-streams-2) \ No newline at end of file diff --git a/core-java-modules/core-java-streams/pom.xml b/core-java-modules/core-java-streams/pom.xml index 96d97f3759..9b68c8dded 100644 --- a/core-java-modules/core-java-streams/pom.xml +++ b/core-java-modules/core-java-streams/pom.xml @@ -14,6 +14,34 @@ + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-generator.version} + provided + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + log4j + log4j + ${log4j.version} + + + org.projectlombok + lombok + ${lombok.version} + provided + org.assertj @@ -21,6 +49,36 @@ ${assertj.version} test + + com.codepoetics + protonpack + ${protonpack.version} + + + io.vavr + vavr + ${vavr.version} + + + one.util + streamex + ${streamex.version} + + + org.aspectj + aspectjrt + ${asspectj.version} + + + org.aspectj + aspectjweaver + ${asspectj.version} + + + pl.touk + throwing-function + ${throwing-function.version} + @@ -31,10 +89,33 @@ true + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${maven.compiler.source} + ${maven.compiler.target} + -parameters + + + + + 0.9.0 + 1.15 + 0.6.5 + 2.10 + 1.3 - 3.6.1 + 3.11.1 + 1.8.9 + 3.1 + 1.8 + 1.8 diff --git a/java-streams/src/main/java/com/baeldung/stream/InfiniteStreams.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/InfiniteStreams.java similarity index 100% rename from java-streams/src/main/java/com/baeldung/stream/InfiniteStreams.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/InfiniteStreams.java diff --git a/java-streams/src/main/java/com/baeldung/stream/StreamApi.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/StreamApi.java similarity index 100% rename from java-streams/src/main/java/com/baeldung/stream/StreamApi.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/StreamApi.java diff --git a/java-streams/src/main/java/com/baeldung/stream/StreamIndices.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/StreamIndices.java similarity index 100% rename from java-streams/src/main/java/com/baeldung/stream/StreamIndices.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/StreamIndices.java diff --git a/java-streams/src/main/java/com/baeldung/stream/filter/Customer.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/filter/Customer.java similarity index 100% rename from java-streams/src/main/java/com/baeldung/stream/filter/Customer.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/filter/Customer.java diff --git a/java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java similarity index 94% rename from java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java index 3170b1fb31..c44aaf8005 100644 --- a/java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java +++ b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/ArithmeticUtils.java @@ -1,8 +1,8 @@ -package com.baeldung.stream.sum; - -public class ArithmeticUtils { - - public static int add(int a, int b) { - return a + b; - } -} +package com.baeldung.stream.sum; + +public class ArithmeticUtils { + + public static int add(int a, int b) { + return a + b; + } +} diff --git a/java-streams/src/main/java/com/baeldung/stream/sum/Item.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/Item.java similarity index 94% rename from java-streams/src/main/java/com/baeldung/stream/sum/Item.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/Item.java index 2f162d6eda..28a1737db8 100644 --- a/java-streams/src/main/java/com/baeldung/stream/sum/Item.java +++ b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/Item.java @@ -1,31 +1,31 @@ -package com.baeldung.stream.sum; - -public class Item { - - private int id; - private Integer price; - - public Item(int id, Integer price) { - super(); - this.id = id; - this.price = price; - } - - // Standard getters and setters - public long getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public Integer getPrice() { - return price; - } - - public void setPrice(Integer price) { - this.price = price; - } - -} +package com.baeldung.stream.sum; + +public class Item { + + private int id; + private Integer price; + + public Item(int id, Integer price) { + super(); + this.id = id; + this.price = price; + } + + // Standard getters and setters + public long getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Integer getPrice() { + return price; + } + + public void setPrice(Integer price) { + this.price = price; + } + +} diff --git a/java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java similarity index 96% rename from java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java index 2f63cf8629..ea6459d360 100644 --- a/java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java +++ b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculator.java @@ -1,59 +1,59 @@ -package com.baeldung.stream.sum; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -public class StreamSumCalculator { - - public static Integer getSumUsingCustomizedAccumulator(List integers) { - return integers.stream() - .reduce(0, ArithmeticUtils::add); - - } - - public static Integer getSumUsingJavaAccumulator(List integers) { - return integers.stream() - .reduce(0, Integer::sum); - - } - - public static Integer getSumUsingReduce(List integers) { - return integers.stream() - .reduce(0, (a, b) -> a + b); - - } - - public static Integer getSumUsingCollect(List integers) { - - return integers.stream() - .collect(Collectors.summingInt(Integer::intValue)); - - } - - public static Integer getSumUsingSum(List integers) { - - return integers.stream() - .mapToInt(Integer::intValue) - .sum(); - } - - public static Integer getSumOfMapValues(Map map) { - - return map.values() - .stream() - .mapToInt(Integer::valueOf) - .sum(); - } - - public static Integer getSumIntegersFromString(String str) { - - Integer sum = Arrays.stream(str.split(" ")) - .filter((s) -> s.matches("\\d+")) - .mapToInt(Integer::valueOf) - .sum(); - - return sum; - } -} +package com.baeldung.stream.sum; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class StreamSumCalculator { + + public static Integer getSumUsingCustomizedAccumulator(List integers) { + return integers.stream() + .reduce(0, ArithmeticUtils::add); + + } + + public static Integer getSumUsingJavaAccumulator(List integers) { + return integers.stream() + .reduce(0, Integer::sum); + + } + + public static Integer getSumUsingReduce(List integers) { + return integers.stream() + .reduce(0, (a, b) -> a + b); + + } + + public static Integer getSumUsingCollect(List integers) { + + return integers.stream() + .collect(Collectors.summingInt(Integer::intValue)); + + } + + public static Integer getSumUsingSum(List integers) { + + return integers.stream() + .mapToInt(Integer::intValue) + .sum(); + } + + public static Integer getSumOfMapValues(Map map) { + + return map.values() + .stream() + .mapToInt(Integer::valueOf) + .sum(); + } + + public static Integer getSumIntegersFromString(String str) { + + Integer sum = Arrays.stream(str.split(" ")) + .filter((s) -> s.matches("\\d+")) + .mapToInt(Integer::valueOf) + .sum(); + + return sum; + } +} diff --git a/java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java similarity index 96% rename from java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java rename to core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java index b83616928e..8a162429d2 100644 --- a/java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java +++ b/core-java-modules/core-java-streams/src/main/java/com/baeldung/stream/sum/StreamSumCalculatorWithObject.java @@ -1,38 +1,38 @@ -package com.baeldung.stream.sum; - -import java.util.List; -import java.util.stream.Collectors; - -public class StreamSumCalculatorWithObject { - - public static Integer getSumUsingCustomizedAccumulator(List items) { - return items.stream() - .map(x -> x.getPrice()) - .reduce(0, ArithmeticUtils::add); - } - - public static Integer getSumUsingJavaAccumulator(List items) { - return items.stream() - .map(x -> x.getPrice()) - .reduce(0, Integer::sum); - } - - public static Integer getSumUsingReduce(List items) { - return items.stream() - .map(item -> item.getPrice()) - .reduce(0, (a, b) -> a + b); - } - - public static Integer getSumUsingCollect(List items) { - return items.stream() - .map(x -> x.getPrice()) - .collect(Collectors.summingInt(Integer::intValue)); - } - - public static Integer getSumUsingSum(List items) { - return items.stream() - .mapToInt(x -> x.getPrice()) - .sum(); - } - -} +package com.baeldung.stream.sum; + +import java.util.List; +import java.util.stream.Collectors; + +public class StreamSumCalculatorWithObject { + + public static Integer getSumUsingCustomizedAccumulator(List items) { + return items.stream() + .map(x -> x.getPrice()) + .reduce(0, ArithmeticUtils::add); + } + + public static Integer getSumUsingJavaAccumulator(List items) { + return items.stream() + .map(x -> x.getPrice()) + .reduce(0, Integer::sum); + } + + public static Integer getSumUsingReduce(List items) { + return items.stream() + .map(item -> item.getPrice()) + .reduce(0, (a, b) -> a + b); + } + + public static Integer getSumUsingCollect(List items) { + return items.stream() + .map(x -> x.getPrice()) + .collect(Collectors.summingInt(Integer::intValue)); + } + + public static Integer getSumUsingSum(List items) { + return items.stream() + .mapToInt(x -> x.getPrice()) + .sum(); + } + +} diff --git a/java-streams/src/test/java/com/baeldung/java/conversion/IterableStreamConversionUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/conversion/IterableStreamConversionUnitTest.java similarity index 96% rename from java-streams/src/test/java/com/baeldung/java/conversion/IterableStreamConversionUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/conversion/IterableStreamConversionUnitTest.java index 99e8088054..f65f91a768 100644 --- a/java-streams/src/test/java/com/baeldung/java/conversion/IterableStreamConversionUnitTest.java +++ b/core-java-modules/core-java-streams/src/test/java/com/baeldung/conversion/IterableStreamConversionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.conversion; +package com.baeldung.conversion; import org.junit.Assert; import org.junit.Test; diff --git a/java-streams/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/protonpack/ProtonpackUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/InfiniteStreamUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/InfiniteStreamUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/stream/InfiniteStreamUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/InfiniteStreamUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamApiUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/StreamApiUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/stream/StreamApiUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/StreamApiUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/StreamIndicesUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/StreamIndicesUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/stream/StreamIndicesUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/StreamIndicesUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java similarity index 97% rename from java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java index a496e18b2d..69edc4f535 100644 --- a/java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java +++ b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/SupplierStreamUnitTest.java @@ -1,35 +1,35 @@ -package com.baeldung.stream; - -import static org.junit.Assert.fail; - -import java.util.Optional; -import java.util.function.Supplier; -import java.util.stream.Stream; - -import org.junit.Test; - -public class SupplierStreamUnitTest { - - @Test(expected = IllegalStateException.class) - public void givenStream_whenStreamUsedTwice_thenThrowException() { - Stream stringStream = Stream.of("A", "B", "C", "D"); - Optional result1 = stringStream.findAny(); - System.out.println(result1.get()); - Optional result2 = stringStream.findFirst(); - System.out.println(result2.get()); - } - - @Test - public void givenStream_whenUsingSupplier_thenNoExceptionIsThrown() { - try { - Supplier> streamSupplier = () -> Stream.of("A", "B", "C", "D"); - Optional result1 = streamSupplier.get().findAny(); - System.out.println(result1.get()); - Optional result2 = streamSupplier.get().findFirst(); - System.out.println(result2.get()); - } catch (IllegalStateException e) { - fail(); - } - } - +package com.baeldung.stream; + +import static org.junit.Assert.fail; + +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import org.junit.Test; + +public class SupplierStreamUnitTest { + + @Test(expected = IllegalStateException.class) + public void givenStream_whenStreamUsedTwice_thenThrowException() { + Stream stringStream = Stream.of("A", "B", "C", "D"); + Optional result1 = stringStream.findAny(); + System.out.println(result1.get()); + Optional result2 = stringStream.findFirst(); + System.out.println(result2.get()); + } + + @Test + public void givenStream_whenUsingSupplier_thenNoExceptionIsThrown() { + try { + Supplier> streamSupplier = () -> Stream.of("A", "B", "C", "D"); + Optional result1 = streamSupplier.get().findAny(); + System.out.println(result1.get()); + Optional result2 = streamSupplier.get().findFirst(); + System.out.println(result2.get()); + } catch (IllegalStateException e) { + fail(); + } + } + } \ No newline at end of file diff --git a/java-streams/src/test/java/com/baeldung/stream/filter/StreamCountUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/filter/StreamCountUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/stream/filter/StreamCountUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/filter/StreamCountUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/filter/StreamFilterUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/filter/StreamFilterUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/stream/filter/StreamFilterUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/filter/StreamFilterUnitTest.java diff --git a/java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java similarity index 97% rename from java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java index 46e1af9a4a..f03703154a 100644 --- a/java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java +++ b/core-java-modules/core-java-streams/src/test/java/com/baeldung/stream/sum/StreamSumUnitTest.java @@ -1,136 +1,136 @@ -package com.baeldung.stream.sum; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.junit.jupiter.api.Test; - -public class StreamSumUnitTest { - - @Test - public void givenListOfIntegersWhenSummingUsingCustomizedAccumulatorThenCorrectValueReturned() { - List integers = Arrays.asList(1, 2, 3, 4, 5); - Integer sum = StreamSumCalculator.getSumUsingCustomizedAccumulator(integers); - assertEquals(15, sum.intValue()); - - } - - @Test - public void givenListOfIntegersWhenSummingUsingJavaAccumulatorThenCorrectValueReturned() { - List integers = Arrays.asList(1, 2, 3, 4, 5); - Integer sum = StreamSumCalculator.getSumUsingJavaAccumulator(integers); - assertEquals(15, sum.intValue()); - } - - @Test - public void givenListOfIntegersWhenSummingUsingReduceThenCorrectValueReturned() { - List integers = Arrays.asList(1, 2, 3, 4, 5); - Integer sum = StreamSumCalculator.getSumUsingReduce(integers); - assertEquals(15, sum.intValue()); - } - - @Test - public void givenListOfIntegersWhenSummingUsingCollectThenCorrectValueReturned() { - List integers = Arrays.asList(1, 2, 3, 4, 5); - Integer sum = StreamSumCalculator.getSumUsingCollect(integers); - assertEquals(15, sum.intValue()); - } - - @Test - public void givenListOfIntegersWhenSummingUsingSumThenCorrectValueReturned() { - List integers = Arrays.asList(1, 2, 3, 4, 5); - Integer sum = StreamSumCalculator.getSumUsingSum(integers); - assertEquals(15, sum.intValue()); - } - - @Test - public void givenListOfItemsWhenSummingUsingCustomizedAccumulatorThenCorrectValueReturned() { - Item item1 = new Item(1, 10); - Item item2 = new Item(2, 15); - Item item3 = new Item(3, 25); - Item item4 = new Item(4, 40); - - List items = Arrays.asList(item1, item2, item3, item4); - - Integer sum = StreamSumCalculatorWithObject.getSumUsingCustomizedAccumulator(items); - assertEquals(90, sum.intValue()); - - } - - @Test - public void givenListOfItemsWhenSummingUsingJavaAccumulatorThenCorrectValueReturned() { - Item item1 = new Item(1, 10); - Item item2 = new Item(2, 15); - Item item3 = new Item(3, 25); - Item item4 = new Item(4, 40); - - List items = Arrays.asList(item1, item2, item3, item4); - - Integer sum = StreamSumCalculatorWithObject.getSumUsingJavaAccumulator(items); - assertEquals(90, sum.intValue()); - } - - @Test - public void givenListOfItemsWhenSummingUsingReduceThenCorrectValueReturned() { - Item item1 = new Item(1, 10); - Item item2 = new Item(2, 15); - Item item3 = new Item(3, 25); - Item item4 = new Item(4, 40); - - List items = Arrays.asList(item1, item2, item3, item4); - - Integer sum = StreamSumCalculatorWithObject.getSumUsingReduce(items); - assertEquals(90, sum.intValue()); - } - - @Test - public void givenListOfItemsWhenSummingUsingCollectThenCorrectValueReturned() { - Item item1 = new Item(1, 10); - Item item2 = new Item(2, 15); - Item item3 = new Item(3, 25); - Item item4 = new Item(4, 40); - - List items = Arrays.asList(item1, item2, item3, item4); - - Integer sum = StreamSumCalculatorWithObject.getSumUsingCollect(items); - assertEquals(90, sum.intValue()); - } - - @Test - public void givenListOfItemsWhenSummingUsingSumThenCorrectValueReturned() { - Item item1 = new Item(1, 10); - Item item2 = new Item(2, 15); - Item item3 = new Item(3, 25); - Item item4 = new Item(4, 40); - - List items = Arrays.asList(item1, item2, item3, item4); - - Integer sum = StreamSumCalculatorWithObject.getSumUsingSum(items); - assertEquals(90, sum.intValue()); - } - - @Test - public void givenMapWhenSummingThenCorrectValueReturned() { - Map map = new HashMap(); - map.put(1, 10); - map.put(2, 15); - map.put(3, 25); - map.put(4, 40); - - Integer sum = StreamSumCalculator.getSumOfMapValues(map); - assertEquals(90, sum.intValue()); - } - - @Test - public void givenStringWhenSummingThenCorrectValueReturned() { - String string = "Item1 10 Item2 25 Item3 30 Item4 45"; - - Integer sum = StreamSumCalculator.getSumIntegersFromString(string); - assertEquals(110, sum.intValue()); - } - -} +package com.baeldung.stream.sum; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.Test; + +public class StreamSumUnitTest { + + @Test + public void givenListOfIntegersWhenSummingUsingCustomizedAccumulatorThenCorrectValueReturned() { + List integers = Arrays.asList(1, 2, 3, 4, 5); + Integer sum = StreamSumCalculator.getSumUsingCustomizedAccumulator(integers); + assertEquals(15, sum.intValue()); + + } + + @Test + public void givenListOfIntegersWhenSummingUsingJavaAccumulatorThenCorrectValueReturned() { + List integers = Arrays.asList(1, 2, 3, 4, 5); + Integer sum = StreamSumCalculator.getSumUsingJavaAccumulator(integers); + assertEquals(15, sum.intValue()); + } + + @Test + public void givenListOfIntegersWhenSummingUsingReduceThenCorrectValueReturned() { + List integers = Arrays.asList(1, 2, 3, 4, 5); + Integer sum = StreamSumCalculator.getSumUsingReduce(integers); + assertEquals(15, sum.intValue()); + } + + @Test + public void givenListOfIntegersWhenSummingUsingCollectThenCorrectValueReturned() { + List integers = Arrays.asList(1, 2, 3, 4, 5); + Integer sum = StreamSumCalculator.getSumUsingCollect(integers); + assertEquals(15, sum.intValue()); + } + + @Test + public void givenListOfIntegersWhenSummingUsingSumThenCorrectValueReturned() { + List integers = Arrays.asList(1, 2, 3, 4, 5); + Integer sum = StreamSumCalculator.getSumUsingSum(integers); + assertEquals(15, sum.intValue()); + } + + @Test + public void givenListOfItemsWhenSummingUsingCustomizedAccumulatorThenCorrectValueReturned() { + Item item1 = new Item(1, 10); + Item item2 = new Item(2, 15); + Item item3 = new Item(3, 25); + Item item4 = new Item(4, 40); + + List items = Arrays.asList(item1, item2, item3, item4); + + Integer sum = StreamSumCalculatorWithObject.getSumUsingCustomizedAccumulator(items); + assertEquals(90, sum.intValue()); + + } + + @Test + public void givenListOfItemsWhenSummingUsingJavaAccumulatorThenCorrectValueReturned() { + Item item1 = new Item(1, 10); + Item item2 = new Item(2, 15); + Item item3 = new Item(3, 25); + Item item4 = new Item(4, 40); + + List items = Arrays.asList(item1, item2, item3, item4); + + Integer sum = StreamSumCalculatorWithObject.getSumUsingJavaAccumulator(items); + assertEquals(90, sum.intValue()); + } + + @Test + public void givenListOfItemsWhenSummingUsingReduceThenCorrectValueReturned() { + Item item1 = new Item(1, 10); + Item item2 = new Item(2, 15); + Item item3 = new Item(3, 25); + Item item4 = new Item(4, 40); + + List items = Arrays.asList(item1, item2, item3, item4); + + Integer sum = StreamSumCalculatorWithObject.getSumUsingReduce(items); + assertEquals(90, sum.intValue()); + } + + @Test + public void givenListOfItemsWhenSummingUsingCollectThenCorrectValueReturned() { + Item item1 = new Item(1, 10); + Item item2 = new Item(2, 15); + Item item3 = new Item(3, 25); + Item item4 = new Item(4, 40); + + List items = Arrays.asList(item1, item2, item3, item4); + + Integer sum = StreamSumCalculatorWithObject.getSumUsingCollect(items); + assertEquals(90, sum.intValue()); + } + + @Test + public void givenListOfItemsWhenSummingUsingSumThenCorrectValueReturned() { + Item item1 = new Item(1, 10); + Item item2 = new Item(2, 15); + Item item3 = new Item(3, 25); + Item item4 = new Item(4, 40); + + List items = Arrays.asList(item1, item2, item3, item4); + + Integer sum = StreamSumCalculatorWithObject.getSumUsingSum(items); + assertEquals(90, sum.intValue()); + } + + @Test + public void givenMapWhenSummingThenCorrectValueReturned() { + Map map = new HashMap(); + map.put(1, 10); + map.put(2, 15); + map.put(3, 25); + map.put(4, 40); + + Integer sum = StreamSumCalculator.getSumOfMapValues(map); + assertEquals(90, sum.intValue()); + } + + @Test + public void givenStringWhenSummingThenCorrectValueReturned() { + String string = "Item1 10 Item2 25 Item3 30 Item4 45"; + + Integer sum = StreamSumCalculator.getSumIntegersFromString(string); + assertEquals(110, sum.intValue()); + } + +} diff --git a/java-streams/src/test/java/com/baeldung/streamordering/BenchmarkManualTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/streamordering/BenchmarkManualTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/streamordering/BenchmarkManualTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/streamordering/BenchmarkManualTest.java diff --git a/java-streams/src/test/java/com/baeldung/streamordering/StreamsOrderingUnitTest.java b/core-java-modules/core-java-streams/src/test/java/com/baeldung/streamordering/StreamsOrderingUnitTest.java similarity index 100% rename from java-streams/src/test/java/com/baeldung/streamordering/StreamsOrderingUnitTest.java rename to core-java-modules/core-java-streams/src/test/java/com/baeldung/streamordering/StreamsOrderingUnitTest.java diff --git a/java-streams/src/test/resources/.gitignore b/core-java-modules/core-java-streams/src/test/resources/.gitignore similarity index 100% rename from java-streams/src/test/resources/.gitignore rename to core-java-modules/core-java-streams/src/test/resources/.gitignore diff --git a/core-java-modules/core-java/README.md b/core-java-modules/core-java/README.md index 41275f6367..54110d9362 100644 --- a/core-java-modules/core-java/README.md +++ b/core-java-modules/core-java/README.md @@ -7,7 +7,7 @@ - [How to Create an Executable JAR with Maven](http://www.baeldung.com/executable-jar-with-maven) - [Introduction to Nashorn](http://www.baeldung.com/java-nashorn) - [Java Money and the Currency API](http://www.baeldung.com/java-money-and-currency) -- [How to Add a Single Element to a Stream](http://www.baeldung.com/java-stream-append-prepend) +- [JVM Log Forging](http://www.baeldung.com/jvm-log-forging) - [How to Find all Getters Returning Null](http://www.baeldung.com/java-getters-returning-null) - [How to Get a Name of a Method Being Executed?](http://www.baeldung.com/java-name-of-executing-method) - [Introduction to Java Serialization](http://www.baeldung.com/java-serialization) diff --git a/java-streams-2/README.md b/java-streams-2/README.md deleted file mode 100644 index 66fbe69ed4..0000000000 --- a/java-streams-2/README.md +++ /dev/null @@ -1,9 +0,0 @@ -## Java Streams Cookbooks and Examples - -This module contains articles about the Stream API in Java. - -### Relevant Articles: -- [Guide to Stream.reduce()](https://www.baeldung.com/java-stream-reduce) -- [How to Break from Java Stream forEach](https://www.baeldung.com/java-break-stream-foreach) -- [Java IntStream Conversions](https://www.baeldung.com/java-intstream-convert) -- More articles: [[<-- prev]](/java-streams) diff --git a/java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java b/java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java deleted file mode 100644 index a17c6a02b6..0000000000 --- a/java-streams-2/src/main/java/com/baeldung/reduce/entities/User.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.baeldung.reduce.entities; - -public class User { - - private final String name; - private final int age; - - public User(String name, int age) { - this.name = name; - this.age = age; - } - - public String getName() { - return name; - } - - public int getAge() { - return age; - } - - @Override - public String toString() { - return "User{" + "name=" + name + ", age=" + age + '}'; - } -} diff --git a/java-streams/README.md b/java-streams/README.md deleted file mode 100644 index a57fdec7fa..0000000000 --- a/java-streams/README.md +++ /dev/null @@ -1,21 +0,0 @@ -## Java Streams Cookbooks and Examples - -This module contains articles about the Stream API in Java. - -### Relevant Articles: -- [The Java 8 Stream API Tutorial](https://www.baeldung.com/java-8-streams) -- [Introduction to Java 8 Streams](https://www.baeldung.com/java-8-streams-introduction) -- [Java 8 and Infinite Streams](https://www.baeldung.com/java-inifinite-streams) -- [Java 8 Stream findFirst() vs. findAny()](https://www.baeldung.com/java-stream-findfirst-vs-findany) -- [How to Get the Last Element of a Stream in Java?](https://www.baeldung.com/java-stream-last-element) -- [“Stream has already been operated upon or closed” Exception in Java](https://www.baeldung.com/java-stream-operated-upon-or-closed-exception) -- [Iterable to Stream in Java](https://www.baeldung.com/java-iterable-to-stream) -- [How to Iterate Over a Stream With Indices](https://www.baeldung.com/java-stream-indices) -- [Primitive Type Streams in Java 8](https://www.baeldung.com/java-8-primitive-streams) -- [Stream Ordering in Java](https://www.baeldung.com/java-stream-ordering) -- [Introduction to Protonpack](https://www.baeldung.com/java-protonpack) -- [Java Stream Filter with Lambda Expression](https://www.baeldung.com/java-stream-filter-lambda) -- [Counting Matches on a Stream Filter](https://www.baeldung.com/java-stream-filter-count) -- [Java 8 Streams peek() API](https://www.baeldung.com/java-streams-peek-api) -- [Working With Maps Using Streams](https://www.baeldung.com/java-maps-streams) -- More articles: [[next -->]](/java-streams-2) diff --git a/java-streams/pom.xml b/java-streams/pom.xml deleted file mode 100644 index bd0123e01d..0000000000 --- a/java-streams/pom.xml +++ /dev/null @@ -1,121 +0,0 @@ - - 4.0.0 - java-streams - 0.1.0-SNAPSHOT - java-streams - jar - - - com.baeldung - parent-java - 0.0.1-SNAPSHOT - ../parent-java - - - - - - org.openjdk.jmh - jmh-core - ${jmh-core.version} - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh-generator.version} - provided - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - log4j - log4j - ${log4j.version} - - - org.projectlombok - lombok - ${lombok.version} - provided - - - - org.assertj - assertj-core - ${assertj.version} - test - - - com.codepoetics - protonpack - ${protonpack.version} - - - io.vavr - vavr - ${vavr.version} - - - one.util - streamex - ${streamex.version} - - - org.aspectj - aspectjrt - ${asspectj.version} - - - org.aspectj - aspectjweaver - ${asspectj.version} - - - pl.touk - throwing-function - ${throwing-function.version} - - - - - java-streams - - - src/main/resources - true - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${maven.compiler.source} - ${maven.compiler.target} - -parameters - - - - - - - - 0.9.0 - 1.15 - 0.6.5 - 2.10 - 1.3 - - 3.11.1 - 1.8.9 - 3.1 - 1.8 - 1.8 - - diff --git a/java-streams/src/main/java/com/baeldung/reduce/application/Application.java b/java-streams/src/main/java/com/baeldung/reduce/application/Application.java deleted file mode 100644 index b101c86780..0000000000 --- a/java-streams/src/main/java/com/baeldung/reduce/application/Application.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.baeldung.reduce.application; - -import com.baeldung.reduce.entities.User; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Fork; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.Warmup; - -public class Application { - - public static void main(String[] args) throws Exception { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result1 = numbers.stream().reduce(0, (subtotal, element) -> subtotal + element); - System.out.println(result1); - - int result2 = numbers.stream().reduce(0, Integer::sum); - System.out.println(result2); - - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result3 = letters.stream().reduce("", (partialString, element) -> partialString + element); - System.out.println(result3); - - String result4 = letters.stream().reduce("", String::concat); - System.out.println(result4); - - String result5 = letters.stream().reduce("", (partialString, element) -> partialString.toUpperCase() + element.toUpperCase()); - System.out.println(result5); - - List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); - int result6 = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - System.out.println(result6); - - String result7 = letters.parallelStream().reduce("", String::concat); - System.out.println(result7); - - int result8 = users.parallelStream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - System.out.println(result8); - - org.openjdk.jmh.Main.main(args); - - } - - @Benchmark - @Fork(value = 1, warmups = 2) - @Warmup(iterations = 2) - @BenchmarkMode(Mode.AverageTime) - public void executeReduceOnParallelizedStream() { - List userList = new ArrayList<>(); - for (int i = 0; i <= 1000000; i++) { - userList.add(new User("John" + i, i)); - } - userList.parallelStream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - } - - @Benchmark - @Fork(value = 1, warmups = 2) - @Warmup(iterations = 2) - @BenchmarkMode(Mode.AverageTime) - public void executeReduceOnSequentialStream() { - List userList = new ArrayList<>(); - for (int i = 0; i <= 1000000; i++) { - userList.add(new User("John" + i, i)); - } - userList.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - } -} diff --git a/java-streams/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java b/java-streams/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java deleted file mode 100644 index 8b4af2cbe2..0000000000 --- a/java-streams/src/main/java/com/baeldung/reduce/utilities/NumberUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.baeldung.reduce.utilities; - -import java.util.List; -import java.util.function.BiFunction; -import java.util.logging.Level; -import java.util.logging.Logger; - -public abstract class NumberUtils { - - private static final Logger LOGGER = Logger.getLogger(NumberUtils.class.getName()); - - public static int divideListElements(List values, Integer divider) { - return values.stream() - .reduce(0, (a, b) -> { - try { - return a / divider + b / divider; - } catch (ArithmeticException e) { - LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); - } - return 0; - }); - } - - public static int divideListElementsWithExtractedTryCatchBlock(List values, int divider) { - return values.stream().reduce(0, (a, b) -> divide(a, divider) + divide(b, divider)); - } - - public static int divideListElementsWithApplyFunctionMethod(List values, int divider) { - BiFunction division = (a, b) -> a / b; - return values.stream().reduce(0, (a, b) -> applyFunction(division, a, divider) + applyFunction(division, b, divider)); - } - - private static int divide(int value, int factor) { - int result = 0; - try { - result = value / factor; - } catch (ArithmeticException e) { - LOGGER.log(Level.INFO, "Arithmetic Exception: Division by Zero"); - } - return result; - } - - private static int applyFunction(BiFunction function, int a, int b) { - try { - return function.apply(a, b); - } - catch(Exception e) { - LOGGER.log(Level.INFO, "Exception occurred!"); - } - return 0; - } -} diff --git a/java-streams/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java b/java-streams/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java deleted file mode 100644 index 8e2ff7bf22..0000000000 --- a/java-streams/src/test/java/com/baeldung/reduce/tests/StreamReduceUnitTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.baeldung.reduce.tests; - -import com.baeldung.reduce.entities.User; -import com.baeldung.reduce.utilities.NumberUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import static org.assertj.core.api.Assertions.assertThat; -import org.junit.Test; - -public class StreamReduceUnitTest { - - @Test - public void givenIntegerList_whenReduceWithSumAccumulatorLambda_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result = numbers.stream().reduce(0, (a, b) -> a + b); - assertThat(result).isEqualTo(21); - } - - @Test - public void givenIntegerList_whenReduceWithSumAccumulatorMethodReference_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - int result = numbers.stream().reduce(0, Integer::sum); - assertThat(result).isEqualTo(21); - } - - @Test - public void givenStringList_whenReduceWithConcatenatorAccumulatorLambda_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", (a, b) -> a + b); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenStringList_whenReduceWithConcatenatorAccumulatorMethodReference_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", String::concat); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenStringList_whenReduceWithUppercaseConcatenatorAccumulator_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.stream().reduce("", (a, b) -> a.toUpperCase() + b.toUpperCase()); - assertThat(result).isEqualTo("ABCDE"); - } - - @Test - public void givenUserList_whenReduceWithAgeAccumulatorAndSumCombiner_thenCorrect() { - List users = Arrays.asList(new User("John", 30), new User("Julie", 35)); - int result = users.stream().reduce(0, (partialAgeResult, user) -> partialAgeResult + user.getAge(), Integer::sum); - assertThat(result).isEqualTo(65); - } - - @Test - public void givenStringList_whenReduceWithParallelStream_thenCorrect() { - List letters = Arrays.asList("a", "b", "c", "d", "e"); - String result = letters.parallelStream().reduce("", String::concat); - assertThat(result).isEqualTo("abcde"); - } - - @Test - public void givenNumberUtilsClass_whenCalledDivideListElements_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElements(numbers, 1)).isEqualTo(21); - } - - @Test - public void givenNumberUtilsClass_whenCalledDivideListElementsWithExtractedTryCatchBlock_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElementsWithExtractedTryCatchBlock(numbers, 1)).isEqualTo(21); - } - - @Test - public void givenStream_whneCalleddivideListElementsWithApplyFunctionMethod_thenCorrect() { - List numbers = Arrays.asList(1, 2, 3, 4, 5, 6); - assertThat(NumberUtils.divideListElementsWithApplyFunctionMethod(numbers, 1)).isEqualTo(21); - } -} diff --git a/pom.xml b/pom.xml index f9e45f5c93..8ec64309ee 100644 --- a/pom.xml +++ b/pom.xml @@ -381,7 +381,7 @@ cloud-foundry-uaa/cf-uaa-oauth2-client cloud-foundry-uaa/cf-uaa-oauth2-resource-server code-generation - core-groovy + core-groovy core-groovy-2 core-groovy-collections @@ -391,6 +391,9 @@ core-java-modules/core-java-8-2 core-java-modules/core-java-annotations core-java-modules/core-java-streams + core-java-modules/core-java-streams-2 + core-java-modules/core-java-streams-3 + core-java-modules/core-java-function core-java-modules/core-java-lang-math @@ -500,8 +503,6 @@ java-numbers-2 java-rmi java-spi - java-streams - java-strings java-strings-2 java-strings-3 @@ -1152,7 +1153,7 @@ cloud-foundry-uaa/cf-uaa-oauth2-client cloud-foundry-uaa/cf-uaa-oauth2-resource-server code-generation - core-groovy + core-groovy core-groovy-2 core-groovy-collections @@ -1161,6 +1162,9 @@ core-java-modules/core-java-8-2 core-java-modules/core-java-annotations core-java-modules/core-java-streams + core-java-modules/core-java-streams-2 + core-java-modules/core-java-streams-3 + core-java-modules/core-java-function core-java-modules/core-java-lang-math @@ -1204,9 +1208,9 @@ core-java-modules/core-java-perf core-java-modules/core-java-sun core-java-modules/core-java-string-conversions - core-java-modules/core-java-string-conversions-2 - core-java-modules/core-java-string-apis - core-scala + core-java-modules/core-java-string-conversions-2 + core-java-modules/core-java-string-apis + core-scala couchbase custom-pmd @@ -1266,8 +1270,6 @@ java-numbers-2 java-rmi java-spi - java-streams - java-strings java-strings-2 java-strings-3 From 9872d61b55e7d011c5e76ec09669d2387248edd5 Mon Sep 17 00:00:00 2001 From: catalin-burcea Date: Fri, 18 Oct 2019 17:53:04 +0300 Subject: [PATCH 2/7] Move articles out of java-strings part3 --- .../core-java-string-algorithms-2/README.md | 16 ++++ .../core-java-string-algorithms-2/pom.xml | 67 +++++++++++++++++ .../addchar}/AppendCharAtPositionX.java | 2 +- .../baeldung}/padding/StringPaddingUtil.java | 2 +- .../removelastchar}/StringHelper.java | 2 +- .../RemoveLeadingAndTrailingZeroes.java | 5 +- .../ReplaceCharacterInString.java | 2 +- .../com/baeldung}/wordcount/WordCounter.java | 2 +- .../AppendCharAtPositionXUnitTest.java | 2 +- .../StringContainingCharactersUnitTest.java | 2 +- .../StringFromPrimitiveArrayUnitTest.java | 2 +- .../padding/StringPaddingUtilUnitTest.java | 2 +- .../RemoveLastCharUnitTest.java | 10 +-- ...emoveLeadingAndTrailingZeroesUnitTest.java | 10 +-- .../ReplaceCharInStringUnitTest.java | 3 +- .../StringReplaceAndRemoveUnitTest.java | 4 +- .../StringDiffBenchmarkUnitTest.java | 0 .../stringdiff/StringDiffUnitTest.java | 0 .../wordcount/WordCountUnitTest.java | 2 +- .../core-java-string-algorithms/README.md | 16 ++++ .../core-java-string-algorithms/pom.xml | 73 +++++++++++++++++++ .../com/baeldung/matchwords}/MatchWords.java | 10 +-- .../com/baeldung/palindrom}/Palindrome.java | 2 +- .../java/com/baeldung/pangram}/Pangram.java | 2 +- .../RemoveDuplicateFromString.java | 2 +- .../repetition/SubstringRepetition.java | 2 +- .../reverse/ReverseStringExamples.java | 2 +- .../com/baeldung}/searching/WordIndexer.java | 2 +- ...emovingStopwordsPerformanceComparison.java | 13 +--- .../src/main/resources/english_stopwords.txt | 0 .../src/main/resources/shakespeare-hamlet.txt | 0 .../CountCharsExampleUnitTest.java | 2 +- .../matchwords}/MatchWordsUnitTest.java | 2 +- .../palindrom}/PalindromeUnitTest.java | 2 +- .../baeldung/pangram}/PangramUnitTest.java | 5 +- .../RemoveDuplicateFromStringUnitTest.java | 2 +- .../RemovingEmojiFromStringUnitTest.java | 9 +-- .../SubstringRepetitionUnitTest.java | 8 +- .../ReverseStringExamplesUnitTest.java | 2 +- .../searching/WordIndexerUnitTest.java | 2 +- .../stopwords}/RemoveStopwordsUnitTest.java | 8 +- java-strings-2/README.md | 10 --- java-strings-3/README.md | 2 - java-strings-ops/README.md | 4 - java-strings-ops/pom.xml | 2 +- java-strings/README.md | 4 - pom.xml | 4 + 47 files changed, 237 insertions(+), 90 deletions(-) create mode 100644 core-java-modules/core-java-string-algorithms-2/README.md create mode 100644 core-java-modules/core-java-string-algorithms-2/pom.xml rename {java-strings-ops/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/addchar}/AppendCharAtPositionX.java (97%) rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung}/padding/StringPaddingUtil.java (96%) rename {java-strings-ops/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removelastchar}/StringHelper.java (95%) rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung}/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java (97%) rename {java-strings/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/replacechar}/ReplaceCharacterInString.java (96%) rename {java-strings-3/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung}/wordcount/WordCounter.java (97%) rename {java-strings-ops/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/addchar}/AppendCharAtPositionXUnitTest.java (99%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/containchar}/StringContainingCharactersUnitTest.java (99%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/join}/StringFromPrimitiveArrayUnitTest.java (99%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung}/padding/StringPaddingUtilUnitTest.java (98%) rename java-strings-ops/src/test/java/com/baeldung/string/StringHelperUnitTest.java => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removelastchar/RemoveLastCharUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung}/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java (99%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replacechar}/ReplaceCharInStringUnitTest.java (92%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replaceremove}/StringReplaceAndRemoveUnitTest.java (98%) rename {java-strings-3 => core-java-modules/core-java-string-algorithms-2}/src/test/java/com/baeldung/stringdiff/StringDiffBenchmarkUnitTest.java (100%) rename {java-strings-3 => core-java-modules/core-java-string-algorithms-2}/src/test/java/com/baeldung/stringdiff/StringDiffUnitTest.java (100%) rename {java-strings-3/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung}/wordcount/WordCountUnitTest.java (97%) create mode 100644 core-java-modules/core-java-string-algorithms/README.md create mode 100644 core-java-modules/core-java-string-algorithms/pom.xml rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/matchwords}/MatchWords.java (92%) rename {java-strings-ops/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/palindrom}/Palindrome.java (98%) rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/pangram}/Pangram.java (98%) rename {java-strings-2/src/main/java/com/baeldung/stringduplicates => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/removeduplicates}/RemoveDuplicateFromString.java (98%) rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung}/repetition/SubstringRepetition.java (94%) rename {java-strings-2/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung}/reverse/ReverseStringExamples.java (97%) rename {java-strings/src/main/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung}/searching/WordIndexer.java (96%) rename {java-strings-2/src/main/java/com/baeldung/string/performance => core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/stopwords}/RemovingStopwordsPerformanceComparison.java (82%) rename {java-strings-2 => core-java-modules/core-java-string-algorithms}/src/main/resources/english_stopwords.txt (100%) rename {java-strings-2 => core-java-modules/core-java-string-algorithms}/src/main/resources/shakespeare-hamlet.txt (100%) rename {java-strings-ops/src/test/java/com/baeldung/java/countingChars => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/countingchars}/CountCharsExampleUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/matchwords}/MatchWordsUnitTest.java (98%) rename {java-strings-ops/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/palindrom}/PalindromeUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/pangram}/PangramUnitTest.java (97%) rename {java-strings-2/src/test/java/com/baeldung/stringduplicates => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeduplicates}/RemoveDuplicateFromStringUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeemojis}/RemovingEmojiFromStringUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung}/repetition/SubstringRepetitionUnitTest.java (93%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung}/reverse/ReverseStringExamplesUnitTest.java (98%) rename {java-strings/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung}/searching/WordIndexerUnitTest.java (98%) rename {java-strings-2/src/test/java/com/baeldung/string => core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/stopwords}/RemoveStopwordsUnitTest.java (98%) diff --git a/core-java-modules/core-java-string-algorithms-2/README.md b/core-java-modules/core-java-string-algorithms-2/README.md new file mode 100644 index 0000000000..2cd64e1920 --- /dev/null +++ b/core-java-modules/core-java-string-algorithms-2/README.md @@ -0,0 +1,16 @@ +## Java String Algorithms + +This module contains articles about string-related algorithms. + +### Relevant Articles: +- [How to Remove the Last Character of a String?](https://www.baeldung.com/java-remove-last-character-of-string) +- [Add a Character to a String at a Given Position](https://www.baeldung.com/java-add-character-to-string) +- [Java Check a String for Lowercase/Uppercase Letter, Special Character and Digit](https://www.baeldung.com/java-lowercase-uppercase-special-character-digit-regex) +- [Remove or Replace Part of a String in Java](https://www.baeldung.com/java-remove-replace-string-part) +- [Replace a Character at a Specific Index in a String in Java](https://www.baeldung.com/java-replace-character-at-index) +- [Join Array of Primitives with Separator in Java](https://www.baeldung.com/java-join-primitive-array) +- [Pad a String with Zeros or Spaces in Java](https://www.baeldung.com/java-pad-string) +- [Remove Leading and Trailing Characters from a String](https://www.baeldung.com/java-remove-trailing-characters) +- [Counting Words in a String](https://www.baeldung.com/java-word-counting) +- [Finding the Difference Between Two Strings](https://www.baeldung.com/java-difference-between-two-strings) +- More articles: [[<-- prev]](../core-java-string-algorithms) diff --git a/core-java-modules/core-java-string-algorithms-2/pom.xml b/core-java-modules/core-java-string-algorithms-2/pom.xml new file mode 100644 index 0000000000..5b0e710bb8 --- /dev/null +++ b/core-java-modules/core-java-string-algorithms-2/pom.xml @@ -0,0 +1,67 @@ + + 4.0.0 + core-java-string-algorithms-2 + 0.1.0-SNAPSHOT + jar + core-java-string-algorithms-2 + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + com.google.guava + guava + ${guava.version} + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-core.version} + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.bitbucket.cowwoc + diff-match-patch + ${diff-match-path.version} + test + + + + + core-java-string-algorithms-2 + + + src/main/resources + true + + + + + + 3.8.1 + 3.6.1 + 1.2 + + + diff --git a/java-strings-ops/src/main/java/com/baeldung/string/AppendCharAtPositionX.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/addchar/AppendCharAtPositionX.java similarity index 97% rename from java-strings-ops/src/main/java/com/baeldung/string/AppendCharAtPositionX.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/addchar/AppendCharAtPositionX.java index ad203ab348..92bb9a9832 100644 --- a/java-strings-ops/src/main/java/com/baeldung/string/AppendCharAtPositionX.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/addchar/AppendCharAtPositionX.java @@ -1,7 +1,7 @@ /** * */ -package com.baeldung.string; +package com.baeldung.addchar; /** * @author swpraman diff --git a/java-strings-2/src/main/java/com/baeldung/string/padding/StringPaddingUtil.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/padding/StringPaddingUtil.java similarity index 96% rename from java-strings-2/src/main/java/com/baeldung/string/padding/StringPaddingUtil.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/padding/StringPaddingUtil.java index 80d05bb42a..1de82620c0 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/padding/StringPaddingUtil.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/padding/StringPaddingUtil.java @@ -1,4 +1,4 @@ -package com.baeldung.string.padding; +package com.baeldung.padding; public class StringPaddingUtil { diff --git a/java-strings-ops/src/main/java/com/baeldung/string/StringHelper.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removelastchar/StringHelper.java similarity index 95% rename from java-strings-ops/src/main/java/com/baeldung/string/StringHelper.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removelastchar/StringHelper.java index dac0d1272e..ebcc283851 100644 --- a/java-strings-ops/src/main/java/com/baeldung/string/StringHelper.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removelastchar/StringHelper.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.removelastchar; import java.util.Optional; diff --git a/java-strings-2/src/main/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java similarity index 97% rename from java-strings-2/src/main/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java index c9d748e897..386d34e0ac 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroes.java @@ -1,9 +1,8 @@ -package com.baeldung.string.removeleadingtrailingchar; +package com.baeldung.removeleadingtrailingchar; -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.CharMatcher; +import org.apache.commons.lang3.StringUtils; public class RemoveLeadingAndTrailingZeroes { diff --git a/java-strings/src/main/java/com/baeldung/string/ReplaceCharacterInString.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/replacechar/ReplaceCharacterInString.java similarity index 96% rename from java-strings/src/main/java/com/baeldung/string/ReplaceCharacterInString.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/replacechar/ReplaceCharacterInString.java index 2cc67f0b51..29fb28a85b 100644 --- a/java-strings/src/main/java/com/baeldung/string/ReplaceCharacterInString.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/replacechar/ReplaceCharacterInString.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.replacechar; public class ReplaceCharacterInString { diff --git a/java-strings-3/src/main/java/com/baeldung/string/wordcount/WordCounter.java b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/wordcount/WordCounter.java similarity index 97% rename from java-strings-3/src/main/java/com/baeldung/string/wordcount/WordCounter.java rename to core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/wordcount/WordCounter.java index 30275773a6..9963c3486b 100644 --- a/java-strings-3/src/main/java/com/baeldung/string/wordcount/WordCounter.java +++ b/core-java-modules/core-java-string-algorithms-2/src/main/java/com/baeldung/wordcount/WordCounter.java @@ -1,4 +1,4 @@ -package com.baeldung.string.wordcount; +package com.baeldung.wordcount; import java.util.StringTokenizer; diff --git a/java-strings-ops/src/test/java/com/baeldung/string/AppendCharAtPositionXUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/addchar/AppendCharAtPositionXUnitTest.java similarity index 99% rename from java-strings-ops/src/test/java/com/baeldung/string/AppendCharAtPositionXUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/addchar/AppendCharAtPositionXUnitTest.java index 7c5409fe29..e850cf1954 100644 --- a/java-strings-ops/src/test/java/com/baeldung/string/AppendCharAtPositionXUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/addchar/AppendCharAtPositionXUnitTest.java @@ -1,7 +1,7 @@ /** * */ -package com.baeldung.string; +package com.baeldung.addchar; import static org.junit.Assert.assertEquals; diff --git a/java-strings/src/test/java/com/baeldung/string/StringContainingCharactersUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/containchar/StringContainingCharactersUnitTest.java similarity index 99% rename from java-strings/src/test/java/com/baeldung/string/StringContainingCharactersUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/containchar/StringContainingCharactersUnitTest.java index be79103e6b..3b0e545584 100644 --- a/java-strings/src/test/java/com/baeldung/string/StringContainingCharactersUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/containchar/StringContainingCharactersUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.containchar; import org.junit.Test; diff --git a/java-strings-2/src/test/java/com/baeldung/string/StringFromPrimitiveArrayUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/join/StringFromPrimitiveArrayUnitTest.java similarity index 99% rename from java-strings-2/src/test/java/com/baeldung/string/StringFromPrimitiveArrayUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/join/StringFromPrimitiveArrayUnitTest.java index c93089e543..f6c9141c3f 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/StringFromPrimitiveArrayUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/join/StringFromPrimitiveArrayUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.join; import com.google.common.base.Joiner; import com.google.common.primitives.Chars; diff --git a/java-strings-2/src/test/java/com/baeldung/string/padding/StringPaddingUtilUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/padding/StringPaddingUtilUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/padding/StringPaddingUtilUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/padding/StringPaddingUtilUnitTest.java index f6a077a88e..d8ef500b30 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/padding/StringPaddingUtilUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/padding/StringPaddingUtilUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.padding; +package com.baeldung.padding; import com.google.common.base.Strings; import org.apache.commons.lang3.StringUtils; diff --git a/java-strings-ops/src/test/java/com/baeldung/string/StringHelperUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removelastchar/RemoveLastCharUnitTest.java similarity index 98% rename from java-strings-ops/src/test/java/com/baeldung/string/StringHelperUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removelastchar/RemoveLastCharUnitTest.java index eb86e84905..e88158deb9 100644 --- a/java-strings-ops/src/test/java/com/baeldung/string/StringHelperUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removelastchar/RemoveLastCharUnitTest.java @@ -1,12 +1,12 @@ -package com.baeldung.string; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +package com.baeldung.removelastchar; import org.apache.commons.lang3.StringUtils; import org.junit.Test; -public class StringHelperUnitTest { +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +public class RemoveLastCharUnitTest { public static final String TEST_STRING = "abcdef"; public static final String NULL_STRING = null; diff --git a/java-strings-2/src/test/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java similarity index 99% rename from java-strings-2/src/test/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java index 55f932fea1..5dec58eea9 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/removeleadingtrailingchar/RemoveLeadingAndTrailingZeroesUnitTest.java @@ -1,13 +1,13 @@ -package com.baeldung.string.removeleadingtrailingchar; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.stream.Stream; +package com.baeldung.removeleadingtrailingchar; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; + public class RemoveLeadingAndTrailingZeroesUnitTest { public static Stream leadingZeroTestProvider() { diff --git a/java-strings/src/test/java/com/baeldung/string/ReplaceCharInStringUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replacechar/ReplaceCharInStringUnitTest.java similarity index 92% rename from java-strings/src/test/java/com/baeldung/string/ReplaceCharInStringUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replacechar/ReplaceCharInStringUnitTest.java index c234c6953c..1e33a7f09d 100644 --- a/java-strings/src/test/java/com/baeldung/string/ReplaceCharInStringUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replacechar/ReplaceCharInStringUnitTest.java @@ -1,8 +1,9 @@ -package com.baeldung.string; +package com.baeldung.replacechar; import org.junit.Test; import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class ReplaceCharInStringUnitTest { private ReplaceCharacterInString characterInString = new ReplaceCharacterInString(); diff --git a/java-strings/src/test/java/com/baeldung/string/StringReplaceAndRemoveUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replaceremove/StringReplaceAndRemoveUnitTest.java similarity index 98% rename from java-strings/src/test/java/com/baeldung/string/StringReplaceAndRemoveUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replaceremove/StringReplaceAndRemoveUnitTest.java index 4d2b54241b..fe71aa6974 100644 --- a/java-strings/src/test/java/com/baeldung/string/StringReplaceAndRemoveUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/replaceremove/StringReplaceAndRemoveUnitTest.java @@ -1,7 +1,7 @@ -package com.baeldung.string; +package com.baeldung.replaceremove; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.RegExUtils; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import static org.junit.Assert.assertFalse; diff --git a/java-strings-3/src/test/java/com/baeldung/stringdiff/StringDiffBenchmarkUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/stringdiff/StringDiffBenchmarkUnitTest.java similarity index 100% rename from java-strings-3/src/test/java/com/baeldung/stringdiff/StringDiffBenchmarkUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/stringdiff/StringDiffBenchmarkUnitTest.java diff --git a/java-strings-3/src/test/java/com/baeldung/stringdiff/StringDiffUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/stringdiff/StringDiffUnitTest.java similarity index 100% rename from java-strings-3/src/test/java/com/baeldung/stringdiff/StringDiffUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/stringdiff/StringDiffUnitTest.java diff --git a/java-strings-3/src/test/java/com/baeldung/string/wordcount/WordCountUnitTest.java b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/wordcount/WordCountUnitTest.java similarity index 97% rename from java-strings-3/src/test/java/com/baeldung/string/wordcount/WordCountUnitTest.java rename to core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/wordcount/WordCountUnitTest.java index fdd045978f..bdfee61d5a 100644 --- a/java-strings-3/src/test/java/com/baeldung/string/wordcount/WordCountUnitTest.java +++ b/core-java-modules/core-java-string-algorithms-2/src/test/java/com/baeldung/wordcount/WordCountUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.wordcount; +package com.baeldung.wordcount; import static org.junit.Assert.assertEquals; diff --git a/core-java-modules/core-java-string-algorithms/README.md b/core-java-modules/core-java-string-algorithms/README.md new file mode 100644 index 0000000000..70a4b5ffaf --- /dev/null +++ b/core-java-modules/core-java-string-algorithms/README.md @@ -0,0 +1,16 @@ +## Java String Algorithms + +This module contains articles about string-related algorithms. + +### Relevant Articles: +- [Check If a String Is a Palindrome](https://www.baeldung.com/java-palindrome) +- [Count Occurrences of a Char in a String](https://www.baeldung.com/java-count-chars) +- [Using indexOf to Find All Occurrences of a Word in a String](https://www.baeldung.com/java-indexOf-find-string-occurrences) +- [Removing Stopwords from a String in Java](https://www.baeldung.com/java-string-remove-stopwords) +- [Removing Repeated Characters from a String](https://www.baeldung.com/java-remove-repeated-char) +- [How to Reverse a String in Java](https://www.baeldung.com/java-reverse-string) +- [Check If a String Is a Pangram in Java](https://www.baeldung.com/java-string-pangram) +- [Check If a String Contains Multiple Keywords](https://www.baeldung.com/string-contains-multiple-words) +- [Checking If a String Is a Repeated Substring](https://www.baeldung.com/java-repeated-substring) +- [Remove Emojis from a Java String](https://www.baeldung.com/java-string-remove-emojis) +- More articles: [[next -->]](../core-java-string-algorithms-2) diff --git a/core-java-modules/core-java-string-algorithms/pom.xml b/core-java-modules/core-java-string-algorithms/pom.xml new file mode 100644 index 0000000000..f1b7499b6d --- /dev/null +++ b/core-java-modules/core-java-string-algorithms/pom.xml @@ -0,0 +1,73 @@ + + 4.0.0 + core-java-string-algorithms + 0.1.0-SNAPSHOT + jar + core-java-string-algorithms + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + com.google.guava + guava + ${guava.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + org.ahocorasick + ahocorasick + ${ahocorasick.version} + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-core.version} + + + com.vdurmont + emoji-java + ${emoji-java.version} + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + core-java-string-algorithms + + + src/main/resources + true + + + + + + 3.8.1 + 27.0.1-jre + 0.4.0 + 3.6.1 + 4.0.0 + + + diff --git a/java-strings-2/src/main/java/com/baeldung/string/MatchWords.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/matchwords/MatchWords.java similarity index 92% rename from java-strings-2/src/main/java/com/baeldung/string/MatchWords.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/matchwords/MatchWords.java index 0cad52c320..b5b7e92d8e 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/MatchWords.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/matchwords/MatchWords.java @@ -1,14 +1,12 @@ -package com.baeldung.string; +package com.baeldung.matchwords; import org.ahocorasick.trie.Emit; -import org.ahocorasick.trie.Token; import org.ahocorasick.trie.Trie; -import java.util.*; -import java.util.function.Function; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; public class MatchWords { diff --git a/java-strings-ops/src/main/java/com/baeldung/string/Palindrome.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/palindrom/Palindrome.java similarity index 98% rename from java-strings-ops/src/main/java/com/baeldung/string/Palindrome.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/palindrom/Palindrome.java index 97d4d36d07..4a98e6583a 100644 --- a/java-strings-ops/src/main/java/com/baeldung/string/Palindrome.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/palindrom/Palindrome.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.palindrom; import java.util.stream.IntStream; diff --git a/java-strings-2/src/main/java/com/baeldung/string/Pangram.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/pangram/Pangram.java similarity index 98% rename from java-strings-2/src/main/java/com/baeldung/string/Pangram.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/pangram/Pangram.java index c09b0c1d29..ca2a44280c 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/Pangram.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/pangram/Pangram.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.pangram; import java.util.Arrays; import java.util.Map; diff --git a/java-strings-2/src/main/java/com/baeldung/stringduplicates/RemoveDuplicateFromString.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/removeduplicates/RemoveDuplicateFromString.java similarity index 98% rename from java-strings-2/src/main/java/com/baeldung/stringduplicates/RemoveDuplicateFromString.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/removeduplicates/RemoveDuplicateFromString.java index d8fd9c4b14..a000f4dbd6 100644 --- a/java-strings-2/src/main/java/com/baeldung/stringduplicates/RemoveDuplicateFromString.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/removeduplicates/RemoveDuplicateFromString.java @@ -1,4 +1,4 @@ -package com.baeldung.stringduplicates; +package com.baeldung.removeduplicates; import java.util.Arrays; import java.util.HashSet; diff --git a/java-strings-2/src/main/java/com/baeldung/string/repetition/SubstringRepetition.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/repetition/SubstringRepetition.java similarity index 94% rename from java-strings-2/src/main/java/com/baeldung/string/repetition/SubstringRepetition.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/repetition/SubstringRepetition.java index 466ce9146b..6715367a19 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/repetition/SubstringRepetition.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/repetition/SubstringRepetition.java @@ -1,4 +1,4 @@ -package com.baeldung.string.repetition; +package com.baeldung.repetition; public class SubstringRepetition { diff --git a/java-strings-2/src/main/java/com/baeldung/string/reverse/ReverseStringExamples.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/reverse/ReverseStringExamples.java similarity index 97% rename from java-strings-2/src/main/java/com/baeldung/string/reverse/ReverseStringExamples.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/reverse/ReverseStringExamples.java index 1a58d09598..5236f14ccd 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/reverse/ReverseStringExamples.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/reverse/ReverseStringExamples.java @@ -1,4 +1,4 @@ -package com.baeldung.string.reverse; +package com.baeldung.reverse; import org.apache.commons.lang3.StringUtils; diff --git a/java-strings/src/main/java/com/baeldung/string/searching/WordIndexer.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/searching/WordIndexer.java similarity index 96% rename from java-strings/src/main/java/com/baeldung/string/searching/WordIndexer.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/searching/WordIndexer.java index 1bcad6dd32..c7550f8e16 100644 --- a/java-strings/src/main/java/com/baeldung/string/searching/WordIndexer.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/searching/WordIndexer.java @@ -1,4 +1,4 @@ -package com.baeldung.string.searching; +package com.baeldung.searching; import java.util.ArrayList; import java.util.List; diff --git a/java-strings-2/src/main/java/com/baeldung/string/performance/RemovingStopwordsPerformanceComparison.java b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/stopwords/RemovingStopwordsPerformanceComparison.java similarity index 82% rename from java-strings-2/src/main/java/com/baeldung/string/performance/RemovingStopwordsPerformanceComparison.java rename to core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/stopwords/RemovingStopwordsPerformanceComparison.java index 5b455459cd..7df64de3f1 100644 --- a/java-strings-2/src/main/java/com/baeldung/string/performance/RemovingStopwordsPerformanceComparison.java +++ b/core-java-modules/core-java-string-algorithms/src/main/java/com/baeldung/stopwords/RemovingStopwordsPerformanceComparison.java @@ -1,4 +1,6 @@ -package com.baeldung.string.performance; +package com.baeldung.stopwords; + +import org.openjdk.jmh.annotations.*; import java.io.IOException; import java.nio.file.Files; @@ -9,15 +11,6 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Fork; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; - @Fork(value = 3, warmups = 1) @State(Scope.Benchmark) diff --git a/java-strings-2/src/main/resources/english_stopwords.txt b/core-java-modules/core-java-string-algorithms/src/main/resources/english_stopwords.txt similarity index 100% rename from java-strings-2/src/main/resources/english_stopwords.txt rename to core-java-modules/core-java-string-algorithms/src/main/resources/english_stopwords.txt diff --git a/java-strings-2/src/main/resources/shakespeare-hamlet.txt b/core-java-modules/core-java-string-algorithms/src/main/resources/shakespeare-hamlet.txt similarity index 100% rename from java-strings-2/src/main/resources/shakespeare-hamlet.txt rename to core-java-modules/core-java-string-algorithms/src/main/resources/shakespeare-hamlet.txt diff --git a/java-strings-ops/src/test/java/com/baeldung/java/countingChars/CountCharsExampleUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/countingchars/CountCharsExampleUnitTest.java similarity index 98% rename from java-strings-ops/src/test/java/com/baeldung/java/countingChars/CountCharsExampleUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/countingchars/CountCharsExampleUnitTest.java index d58684445b..8a5f1181b5 100644 --- a/java-strings-ops/src/test/java/com/baeldung/java/countingChars/CountCharsExampleUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/countingchars/CountCharsExampleUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.countingChars; +package com.baeldung.countingchars; import static org.junit.Assert.assertEquals; diff --git a/java-strings-2/src/test/java/com/baeldung/string/MatchWordsUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/matchwords/MatchWordsUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/MatchWordsUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/matchwords/MatchWordsUnitTest.java index 385aadaa5d..9ff1066a12 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/MatchWordsUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/matchwords/MatchWordsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.matchwords; import org.junit.Test; diff --git a/java-strings-ops/src/test/java/com/baeldung/string/PalindromeUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/palindrom/PalindromeUnitTest.java similarity index 98% rename from java-strings-ops/src/test/java/com/baeldung/string/PalindromeUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/palindrom/PalindromeUnitTest.java index 8dea72d8ca..43334ad0fd 100644 --- a/java-strings-ops/src/test/java/com/baeldung/string/PalindromeUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/palindrom/PalindromeUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string; +package com.baeldung.palindrom; import static org.junit.Assert.assertTrue; diff --git a/java-strings-2/src/test/java/com/baeldung/string/PangramUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/pangram/PangramUnitTest.java similarity index 97% rename from java-strings-2/src/test/java/com/baeldung/string/PangramUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/pangram/PangramUnitTest.java index 36e603b535..b081a425e2 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/PangramUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/pangram/PangramUnitTest.java @@ -1,8 +1,9 @@ -package com.baeldung.string; +package com.baeldung.pangram; + +import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import org.junit.Test; public class PangramUnitTest { diff --git a/java-strings-2/src/test/java/com/baeldung/stringduplicates/RemoveDuplicateFromStringUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeduplicates/RemoveDuplicateFromStringUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/stringduplicates/RemoveDuplicateFromStringUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeduplicates/RemoveDuplicateFromStringUnitTest.java index 895ecc4a3b..2372a5e569 100644 --- a/java-strings-2/src/test/java/com/baeldung/stringduplicates/RemoveDuplicateFromStringUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeduplicates/RemoveDuplicateFromStringUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.stringduplicates; +package com.baeldung.removeduplicates; import org.junit.Assert; import org.junit.Before; diff --git a/java-strings-2/src/test/java/com/baeldung/string/RemovingEmojiFromStringUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeemojis/RemovingEmojiFromStringUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/RemovingEmojiFromStringUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeemojis/RemovingEmojiFromStringUnitTest.java index 8688f9dcf5..2c5f83400e 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/RemovingEmojiFromStringUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/removeemojis/RemovingEmojiFromStringUnitTest.java @@ -1,13 +1,12 @@ -package com.baeldung.string; +package com.baeldung.removeemojis; -import static org.junit.Assert.assertEquals; +import com.vdurmont.emoji.EmojiParser; +import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.junit.Test; - -import com.vdurmont.emoji.EmojiParser; +import static org.junit.Assert.assertEquals; public class RemovingEmojiFromStringUnitTest { String text = "la conférence, commencera à 10 heures 😅"; diff --git a/java-strings-2/src/test/java/com/baeldung/string/repetition/SubstringRepetitionUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/repetition/SubstringRepetitionUnitTest.java similarity index 93% rename from java-strings-2/src/test/java/com/baeldung/string/repetition/SubstringRepetitionUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/repetition/SubstringRepetitionUnitTest.java index f382a24a7f..5ecb7315c2 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/repetition/SubstringRepetitionUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/repetition/SubstringRepetitionUnitTest.java @@ -1,10 +1,10 @@ -package com.baeldung.string.repetition; - -import static com.baeldung.string.repetition.SubstringRepetition.*; -import static org.junit.Assert.*; +package com.baeldung.repetition; import org.junit.Test; +import static com.baeldung.repetition.SubstringRepetition.*; +import static org.junit.Assert.*; + public class SubstringRepetitionUnitTest { private String validString = "aa"; diff --git a/java-strings-2/src/test/java/com/baeldung/string/reverse/ReverseStringExamplesUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/reverse/ReverseStringExamplesUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/reverse/ReverseStringExamplesUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/reverse/ReverseStringExamplesUnitTest.java index 020ead02db..c122163174 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/reverse/ReverseStringExamplesUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/reverse/ReverseStringExamplesUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.reverse; +package com.baeldung.reverse; import org.apache.commons.lang3.StringUtils; import org.junit.Test; diff --git a/java-strings/src/test/java/com/baeldung/string/searching/WordIndexerUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/searching/WordIndexerUnitTest.java similarity index 98% rename from java-strings/src/test/java/com/baeldung/string/searching/WordIndexerUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/searching/WordIndexerUnitTest.java index f3f76db01f..774d5a2121 100644 --- a/java-strings/src/test/java/com/baeldung/string/searching/WordIndexerUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/searching/WordIndexerUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.string.searching; +package com.baeldung.searching; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/java-strings-2/src/test/java/com/baeldung/string/RemoveStopwordsUnitTest.java b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/stopwords/RemoveStopwordsUnitTest.java similarity index 98% rename from java-strings-2/src/test/java/com/baeldung/string/RemoveStopwordsUnitTest.java rename to core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/stopwords/RemoveStopwordsUnitTest.java index edda2ec9d7..d90a70a9f5 100644 --- a/java-strings-2/src/test/java/com/baeldung/string/RemoveStopwordsUnitTest.java +++ b/core-java-modules/core-java-string-algorithms/src/test/java/com/baeldung/stopwords/RemoveStopwordsUnitTest.java @@ -1,6 +1,7 @@ -package com.baeldung.string; +package com.baeldung.stopwords; -import static org.junit.Assert.assertEquals; +import org.junit.BeforeClass; +import org.junit.Test; import java.io.IOException; import java.nio.file.Files; @@ -10,8 +11,7 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.junit.BeforeClass; -import org.junit.Test; +import static org.junit.Assert.assertEquals; public class RemoveStopwordsUnitTest { final String original = "The quick brown fox jumps over the lazy dog"; diff --git a/java-strings-2/README.md b/java-strings-2/README.md index ced813163d..b97df7c969 100644 --- a/java-strings-2/README.md +++ b/java-strings-2/README.md @@ -6,22 +6,12 @@ This module contains articles about strings in Java. - [Java Localization – Formatting Messages](https://www.baeldung.com/java-localization-messages-formatting) - [Check If a String Contains a Substring](https://www.baeldung.com/java-string-contains-substring) -- [Removing Stopwords from a String in Java](https://www.baeldung.com/java-string-remove-stopwords) - [Java – Generate Random String](https://www.baeldung.com/java-random-string) - [Java Base64 Encoding and Decoding](https://www.baeldung.com/java-base64-encode-and-decode) -- [Removing Repeated Characters from a String](https://www.baeldung.com/java-remove-repeated-char) -- [Join Array of Primitives with Separator in Java](https://www.baeldung.com/java-join-primitive-array) -- [Pad a String with Zeros or Spaces in Java](https://www.baeldung.com/java-pad-string) -- [Remove Emojis from a Java String](https://www.baeldung.com/java-string-remove-emojis) -- [Remove Leading and Trailing Characters from a String](https://www.baeldung.com/java-remove-trailing-characters) - [Concatenating Strings In Java](https://www.baeldung.com/java-strings-concatenation) - [Java String Interview Questions and Answers](https://www.baeldung.com/java-string-interview-questions) -- [Check if a String is a Pangram in Java](https://www.baeldung.com/java-string-pangram) -- [Check If a String Contains Multiple Keywords](https://www.baeldung.com/string-contains-multiple-words) - [Checking for Empty or Blank Strings in Java](https://www.baeldung.com/java-blank-empty-strings) - [String Initialization in Java](https://www.baeldung.com/java-string-initialization) - [Java Multi-line String](https://www.baeldung.com/java-multiline-string) -- [Checking If a String Is a Repeated Substring](https://www.baeldung.com/java-repeated-substring) -- [How to Reverse a String in Java](https://www.baeldung.com/java-reverse-string) - [String toLowerCase and toUpperCase Methods in Java](https://www.baeldung.com/java-string-convert-case) - More articles: [[<-- prev>]](/java-strings) [[next -->]](/java-strings-3) diff --git a/java-strings-3/README.md b/java-strings-3/README.md index 6276dfc621..721ea5523b 100644 --- a/java-strings-3/README.md +++ b/java-strings-3/README.md @@ -4,6 +4,4 @@ This module contains articles about strings in Java. ### Relevant Articles: - [Java String equalsIgnoreCase()](https://www.baeldung.com/java-string-equalsignorecase) -- [Finding the Difference Between Two Strings](https://www.baeldung.com/java-difference-between-two-strings) -- [Counting Words in a String](https://www.baeldung.com/java-word-counting) - More articles: [[<-- prev>]](/java-strings-2) diff --git a/java-strings-ops/README.md b/java-strings-ops/README.md index 1300cf028e..e35a3808f0 100644 --- a/java-strings-ops/README.md +++ b/java-strings-ops/README.md @@ -3,13 +3,9 @@ This module contains articles about operations on strings in Java. ### Relevant Articles: -- [Check If a String Is a Palindrome](https://www.baeldung.com/java-palindrome) - [Comparing Strings in Java](https://www.baeldung.com/java-compare-strings) - [Check If a String Is Numeric in Java](https://www.baeldung.com/java-check-string-number) - [Get Substring from String in Java](https://www.baeldung.com/java-substring) -- [How to Remove the Last Character of a String?](https://www.baeldung.com/java-remove-last-character-of-string) -- [Add a Character to a String at a Given Position](https://www.baeldung.com/java-add-character-to-string) -- [Count Occurrences of a Char in a String](https://www.baeldung.com/java-count-chars) - [Guide to Java String Pool](https://www.baeldung.com/java-string-pool) - [Split a String in Java](https://www.baeldung.com/java-split-string) - [Common String Operations in Java](https://www.baeldung.com/java-string-operations) diff --git a/java-strings-ops/pom.xml b/java-strings-ops/pom.xml index b6a7ea2728..ebed216c2b 100644 --- a/java-strings-ops/pom.xml +++ b/java-strings-ops/pom.xml @@ -90,9 +90,9 @@ 3.8.1 + 27.0.1-jre 3.6.1 - 27.0.1-jre 5.3.1 diff --git a/java-strings/README.md b/java-strings/README.md index 17b74231a4..e2ffbe6453 100644 --- a/java-strings/README.md +++ b/java-strings/README.md @@ -6,11 +6,7 @@ This module contains articles about strings in Java. - [String Operations with Java Streams](https://www.baeldung.com/java-stream-operations-on-strings) - [Use char[] Array Over a String for Manipulating Passwords in Java?](https://www.baeldung.com/java-storing-passwords) - [Compact Strings in Java 9](https://www.baeldung.com/java-9-compact-string) -- [Java Check a String for Lowercase/Uppercase Letter, Special Character and Digit](https://www.baeldung.com/java-lowercase-uppercase-special-character-digit-regex) - [String Not Empty Test Assertions in Java](https://www.baeldung.com/java-assert-string-not-empty) - [String Performance Hints](https://www.baeldung.com/java-string-performance) -- [Using indexOf to Find All Occurrences of a Word in a String](https://www.baeldung.com/java-indexOf-find-string-occurrences) - [Adding a Newline Character to a String in Java](https://www.baeldung.com/java-string-newline) -- [Remove or Replace Part of a String in Java](https://www.baeldung.com/java-remove-replace-string-part) -- [Replace a Character at a Specific Index in a String in Java](https://www.baeldung.com/java-replace-character-at-index) - More articles: [[next -->]](/java-strings-2) diff --git a/pom.xml b/pom.xml index f9e45f5c93..58a6d8bee0 100644 --- a/pom.xml +++ b/pom.xml @@ -437,6 +437,8 @@ core-java-modules/core-java-sun core-java-modules/core-java-string-conversions core-java-modules/core-java-string-conversions-2 + core-java-modules/core-java-string-algorithms + core-java-modules/core-java-string-algorithms-2 core-java-modules/core-java-string-apis core-java-modules/core-java core-java-modules/core-java-jvm @@ -1205,6 +1207,8 @@ core-java-modules/core-java-sun core-java-modules/core-java-string-conversions core-java-modules/core-java-string-conversions-2 + core-java-modules/core-java-string-algorithms + core-java-modules/core-java-string-algorithms-2 core-java-modules/core-java-string-apis core-scala couchbase From ffe54857cb310aec6a170babfe4cd98c5f92e750 Mon Sep 17 00:00:00 2001 From: Johnathan Gilday Date: Sun, 25 Aug 2019 21:44:14 -0400 Subject: [PATCH 3/7] :arrow_up: BAEL-3237 Upgrade AutoValue --- code-generation/pom.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code-generation/pom.xml b/code-generation/pom.xml index b52e558b53..91ce0a4639 100644 --- a/code-generation/pom.xml +++ b/code-generation/pom.xml @@ -12,10 +12,16 @@ + + com.google.auto.value + auto-value-annotations + ${auto-value.version} + com.google.auto.value auto-value ${auto-value.version} + provided com.google.auto.factory @@ -43,9 +49,9 @@ - 1.3 - 1.0-beta5 - 1.0-rc5 + 1.6.6 + 1.0-beta6 + 1.0-rc6 4.2.0 From 9059f4a2c29c439875d1564ddc01ee8db3722674 Mon Sep 17 00:00:00 2001 From: Johnathan Gilday Date: Sat, 7 Sep 2019 14:40:24 -0400 Subject: [PATCH 4/7] :sparkles: BAEL-3237 AutoValue Builder with defensive copies --- .../java/com/baeldung/autovalue/Person.java | 38 +++++++++++++++++++ .../baeldung/autovalue/PersonUnitTest.java | 37 ++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 code-generation/src/main/java/com/baeldung/autovalue/Person.java create mode 100644 code-generation/src/test/java/com/baeldung/autovalue/PersonUnitTest.java diff --git a/code-generation/src/main/java/com/baeldung/autovalue/Person.java b/code-generation/src/main/java/com/baeldung/autovalue/Person.java new file mode 100644 index 0000000000..a5fb684596 --- /dev/null +++ b/code-generation/src/main/java/com/baeldung/autovalue/Person.java @@ -0,0 +1,38 @@ +package com.baeldung.autovalue; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import com.google.auto.value.AutoValue; + +@AutoValue +public abstract class Person { + + public abstract String name(); + + public abstract List favoriteMovies(); + + public static Builder builder() { + return new AutoValue_Person.Builder(); + } + + @AutoValue.Builder + public static abstract class Builder { + + public abstract Builder name(String value); + + public abstract Builder favoriteMovies(List value); + + abstract List favoriteMovies(); + + abstract Person autoBuild(); + + public Person build() { + List favoriteMovies = favoriteMovies(); + List copy = Collections.unmodifiableList(new ArrayList<>(favoriteMovies)); + favoriteMovies(copy); + return autoBuild(); + } + } +} diff --git a/code-generation/src/test/java/com/baeldung/autovalue/PersonUnitTest.java b/code-generation/src/test/java/com/baeldung/autovalue/PersonUnitTest.java new file mode 100644 index 0000000000..fce12edafe --- /dev/null +++ b/code-generation/src/test/java/com/baeldung/autovalue/PersonUnitTest.java @@ -0,0 +1,37 @@ +package com.baeldung.autovalue; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +/** + * Unit Test which verifies that the {@link Person} value object creates defensive copies of its favoriteMovies list. + */ +public class PersonUnitTest { + + @Test + public void givenNewPerson_whenModifyOriginalList_thenValueObjectIsNotAlsoModified() { + // GIVEN new Person + List originalFavoriteMoviesList = new ArrayList(); + originalFavoriteMoviesList.add("Training Day"); + originalFavoriteMoviesList.add("Fast and the Furious"); + Person person = Person.builder() + .name("Dan") + .favoriteMovies(originalFavoriteMoviesList) + .build(); + + // WHEN modify original list + originalFavoriteMoviesList.add("Friday"); + + // THEN Person remains unaffected + assertFalse(person.favoriteMovies() + .contains("Friday")); + assertEquals(2, person.favoriteMovies() + .size()); + } + +} From d009d17347d354d18702656f8dbe66c7fed56135 Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Mon, 28 Oct 2019 09:53:40 +0330 Subject: [PATCH 5/7] Fixed the Concurrent Modifications By introducing a new logger for the broken test. --- .../baeldung/logback/MapAppenderIntegrationTest.java | 12 ++++++------ .../logback/src/test/resources/logback-test.xml | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/logging-modules/logback/src/test/java/com/baeldung/logback/MapAppenderIntegrationTest.java b/logging-modules/logback/src/test/java/com/baeldung/logback/MapAppenderIntegrationTest.java index a86bad4c3e..ae0eec727f 100644 --- a/logging-modules/logback/src/test/java/com/baeldung/logback/MapAppenderIntegrationTest.java +++ b/logging-modules/logback/src/test/java/com/baeldung/logback/MapAppenderIntegrationTest.java @@ -15,17 +15,17 @@ import static org.junit.Assert.assertThat; public class MapAppenderIntegrationTest { - private Logger rootLogger; + private Logger logger; @Before public void setUp() { - rootLogger = (Logger) LoggerFactory.getLogger("ROOT"); + logger = (Logger) LoggerFactory.getLogger(MapAppenderIntegrationTest.class); } @Test public void whenLoggerEmitsLoggingEvent_thenAppenderReceivesEvent() { - rootLogger.info("Test from {}", this.getClass().getSimpleName()); - MapAppender appender = (MapAppender) rootLogger.getAppender("map"); + logger.info("Test from {}", this.getClass().getSimpleName()); + MapAppender appender = (MapAppender) logger.getAppender("map"); List messages = appender.getEventMap().values().stream().map(ILoggingEvent::getMessage).collect(toList()); assertThat(messages, hasItems("Test from {}")); @@ -33,8 +33,8 @@ public class MapAppenderIntegrationTest { @Test public void givenNoPrefixSet_whenLoggerEmitsEvent_thenAppenderReceivesNoEvent() { - rootLogger.info("Test from {}", this.getClass().getSimpleName()); - MapAppender appender = (MapAppender) rootLogger.getAppender("badMap"); + logger.info("Test from {}", this.getClass().getSimpleName()); + MapAppender appender = (MapAppender) logger.getAppender("badMap"); assertEquals(appender.getEventMap().size(), 0); } } diff --git a/logging-modules/logback/src/test/resources/logback-test.xml b/logging-modules/logback/src/test/resources/logback-test.xml index df81f18cc2..89c0124738 100644 --- a/logging-modules/logback/src/test/resources/logback-test.xml +++ b/logging-modules/logback/src/test/resources/logback-test.xml @@ -28,4 +28,9 @@ + + + + + \ No newline at end of file From 8aaa2cef99d78435aad1f0a643863ce5585e89ff Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Mon, 28 Oct 2019 23:33:43 +0330 Subject: [PATCH 6/7] Fixed the Integrations Tests in spring-boot-data --- .../java/com/baeldung/disableautoconfig/SpringDataJPA.java | 3 +++ .../com/baeldung/disableautoconfig/SpringDataMongoDB.java | 4 +++- .../java/com/baeldung/disableautoconfig/SpringDataRedis.java | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataJPA.java b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataJPA.java index 8e4ee76a25..87656f66a6 100644 --- a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataJPA.java +++ b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataJPA.java @@ -1,12 +1,15 @@ package com.baeldung.disableautoconfig; +import org.javers.spring.boot.sql.JaversSqlAutoConfiguration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, + JaversSqlAutoConfiguration.class, SpringDataWebAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class SpringDataJPA { diff --git a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataMongoDB.java b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataMongoDB.java index 865c137a8d..0845acee6e 100644 --- a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataMongoDB.java +++ b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataMongoDB.java @@ -3,9 +3,11 @@ package com.baeldung.disableautoconfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; +import org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration; import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; -@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) +@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, + SpringDataWebAutoConfiguration.class}) public class SpringDataMongoDB { public static void main(String[] args) { diff --git a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataRedis.java b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataRedis.java index 9ec831c446..cd8cb0de09 100644 --- a/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataRedis.java +++ b/spring-boot-data/src/main/java/com/baeldung/disableautoconfig/SpringDataRedis.java @@ -4,8 +4,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration; +import org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration; -@SpringBootApplication(exclude = {RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class}) +@SpringBootApplication(exclude = {RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, + SpringDataWebAutoConfiguration.class}) public class SpringDataRedis { public static void main(String[] args) { From 9002da9c61ab9809a200d253bdffb9f11583f326 Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Mon, 28 Oct 2019 23:52:57 +0330 Subject: [PATCH 7/7] Fixed the Integrations Tests in jee-kotlin --- .../com/baeldung/jeekotlin/StudentResourceIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jee-kotlin/src/test/kotlin/com/baeldung/jeekotlin/StudentResourceIntegrationTest.java b/jee-kotlin/src/test/kotlin/com/baeldung/jeekotlin/StudentResourceIntegrationTest.java index b91b47cb1f..d48a3a96da 100644 --- a/jee-kotlin/src/test/kotlin/com/baeldung/jeekotlin/StudentResourceIntegrationTest.java +++ b/jee-kotlin/src/test/kotlin/com/baeldung/jeekotlin/StudentResourceIntegrationTest.java @@ -36,7 +36,7 @@ public class StudentResourceIntegrationTest { .withMavenCentralRepo(true) .withClassPathResolution(true) .loadPomFromFile("pom.xml") - .resolve("org.jetbrains.kotlin:kotlin-stdlib") + .resolve("org.jetbrains.kotlin:kotlin-stdlib:1.3.41") .withTransitivity() .as(JavaArchive.class);