diff --git a/pom.xml b/pom.xml
index b8a73ad0a0..4bd983e30b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -410,7 +410,6 @@
java-jdi
java-rmi
java-spi
- java-vavr-stream
java-websocket
javax-sound
javaxval
@@ -488,6 +487,7 @@
reactive-systems
security-modules
slack
+ vavr-modules
web-modules
@@ -692,8 +692,7 @@
spring-ejb-modules/ejb-beans
vaadin
- vavr
- vavr-2
+ vavr-modules
@@ -809,7 +808,6 @@
java-jdi
java-rmi
java-spi
- java-vavr-stream
java-websocket
javax-sound
javaxval
@@ -889,6 +887,7 @@
reactive-systems
security-modules
slack
+ vavr-modules
web-modules
@@ -1079,8 +1078,7 @@
spring-ejb-modules/ejb-beans
vaadin
- vavr
- vavr-2
+ vavr-modules
diff --git a/vavr-modules/README.md b/vavr-modules/README.md
new file mode 100644
index 0000000000..fa2a448f3a
--- /dev/null
+++ b/vavr-modules/README.md
@@ -0,0 +1,3 @@
+## VAVR
+
+This module contains modules about vavr.
\ No newline at end of file
diff --git a/java-vavr-stream/README.md b/vavr-modules/java-vavr-stream/README.md
similarity index 100%
rename from java-vavr-stream/README.md
rename to vavr-modules/java-vavr-stream/README.md
diff --git a/java-vavr-stream/pom.xml b/vavr-modules/java-vavr-stream/pom.xml
similarity index 94%
rename from java-vavr-stream/pom.xml
rename to vavr-modules/java-vavr-stream/pom.xml
index 8358c29003..cda9d1f734 100644
--- a/java-vavr-stream/pom.xml
+++ b/vavr-modules/java-vavr-stream/pom.xml
@@ -11,7 +11,7 @@
com.baeldung
- parent-modules
+ vavr-modules
1.0.0-SNAPSHOT
diff --git a/java-vavr-stream/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java b/vavr-modules/java-vavr-stream/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
similarity index 100%
rename from java-vavr-stream/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
rename to vavr-modules/java-vavr-stream/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
diff --git a/java-vavr-stream/src/main/resources/logback.xml b/vavr-modules/java-vavr-stream/src/main/resources/logback.xml
similarity index 100%
rename from java-vavr-stream/src/main/resources/logback.xml
rename to vavr-modules/java-vavr-stream/src/main/resources/logback.xml
diff --git a/vavr-modules/pom.xml b/vavr-modules/pom.xml
new file mode 100644
index 0000000000..d570df6d34
--- /dev/null
+++ b/vavr-modules/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+ vavr-modules
+ vavr-modules
+ pom
+
+
+ parent-modules
+ com.baeldung
+ 1.0.0-SNAPSHOT
+
+
+
+ vavr
+ vavr-2
+ java-vavr-stream
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vavr-2/README.md b/vavr-modules/vavr-2/README.md
similarity index 100%
rename from vavr-2/README.md
rename to vavr-modules/vavr-2/README.md
diff --git a/vavr-2/pom.xml b/vavr-modules/vavr-2/pom.xml
similarity index 74%
rename from vavr-2/pom.xml
rename to vavr-modules/vavr-2/pom.xml
index f3640d7c6e..681886ac11 100644
--- a/vavr-2/pom.xml
+++ b/vavr-modules/vavr-2/pom.xml
@@ -1,18 +1,17 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
vavr-2
vavr-2
jar
- parent-modules
com.baeldung
+ vavr-modules
1.0.0-SNAPSHOT
-
io.vavr
diff --git a/vavr-2/src/main/java/com/baeldung/vavr/either/EitherDemo.java b/vavr-modules/vavr-2/src/main/java/com/baeldung/vavr/either/EitherDemo.java
similarity index 100%
rename from vavr-2/src/main/java/com/baeldung/vavr/either/EitherDemo.java
rename to vavr-modules/vavr-2/src/main/java/com/baeldung/vavr/either/EitherDemo.java
diff --git a/vavr-2/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java b/vavr-modules/vavr-2/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java
similarity index 100%
rename from vavr-2/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java
rename to vavr-modules/vavr-2/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java
diff --git a/vavr-2/src/test/java/com/baeldung/vavr/interoperability/CollectionsInteroperabilityUnitTest.java b/vavr-modules/vavr-2/src/test/java/com/baeldung/vavr/interoperability/CollectionsInteroperabilityUnitTest.java
similarity index 100%
rename from vavr-2/src/test/java/com/baeldung/vavr/interoperability/CollectionsInteroperabilityUnitTest.java
rename to vavr-modules/vavr-2/src/test/java/com/baeldung/vavr/interoperability/CollectionsInteroperabilityUnitTest.java
diff --git a/vavr/README.md b/vavr-modules/vavr/README.md
similarity index 100%
rename from vavr/README.md
rename to vavr-modules/vavr/README.md
diff --git a/vavr/pom.xml b/vavr-modules/vavr/pom.xml
similarity index 96%
rename from vavr/pom.xml
rename to vavr-modules/vavr/pom.xml
index 1604ecc06e..5f6bf4db98 100644
--- a/vavr/pom.xml
+++ b/vavr-modules/vavr/pom.xml
@@ -11,7 +11,7 @@
com.baeldung
parent-boot-2
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../../parent-boot-2
diff --git a/vavr/src/main/java/com/baeldung/Application.java b/vavr-modules/vavr/src/main/java/com/baeldung/Application.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/Application.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/Application.java
diff --git a/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java b/vavr-modules/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java
diff --git a/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java b/vavr-modules/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/Person.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/Person.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/Person.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/Person.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/PersonValidator.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/PersonValidator.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/PersonValidator.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/PersonValidator.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/User.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/User.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/User.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/User.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/exception/handling/JavaTryCatch.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/JavaTryCatch.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/exception/handling/JavaTryCatch.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/JavaTryCatch.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/exception/handling/VavrTry.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/VavrTry.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/exception/handling/VavrTry.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/VavrTry.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/ClientException.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/ClientException.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/exception/handling/client/ClientException.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/ClientException.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/HttpClient.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/HttpClient.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/exception/handling/client/HttpClient.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/HttpClient.java
diff --git a/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/Response.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/Response.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavr/exception/handling/client/Response.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavr/exception/handling/client/Response.java
diff --git a/vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/application/Application.java
diff --git a/vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/model/User.java
diff --git a/vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java b/vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
similarity index 100%
rename from vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
rename to vavr-modules/vavr/src/main/java/com/baeldung/vavrvalidation/validator/UserValidator.java
diff --git a/vavr/src/main/resources/logback.xml b/vavr-modules/vavr/src/main/resources/logback.xml
similarity index 100%
rename from vavr/src/main/resources/logback.xml
rename to vavr-modules/vavr/src/main/resources/logback.xml
diff --git a/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/PropertyBasedLongRunningUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/PropertyBasedLongRunningUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/PropertyBasedLongRunningUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/PropertyBasedLongRunningUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/VavrUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/VavrUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/VavrUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/VavrUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/collections/CollectionAPIUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/collections/CollectionAPIUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/collections/CollectionAPIUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/collections/CollectionAPIUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java
similarity index 96%
rename from vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java
index 60359d6803..1bae70a3d4 100644
--- a/vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java
+++ b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/collections/CollectionFactoryMethodsUnitTest.java
@@ -1,107 +1,107 @@
-package com.baeldung.vavr.collections;
-
-import static io.vavr.API.Array;
-import static io.vavr.API.Failure;
-import static io.vavr.API.List;
-import static io.vavr.API.None;
-import static io.vavr.API.Some;
-import static io.vavr.API.Stream;
-import static io.vavr.API.Success;
-import static io.vavr.API.Tuple;
-import static io.vavr.API.Vector;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-
-import io.vavr.Tuple3;
-import io.vavr.collection.Array;
-import io.vavr.collection.List;
-import io.vavr.collection.Stream;
-import io.vavr.collection.Vector;
-import io.vavr.control.Option;
-import io.vavr.control.Try;
-
-public class CollectionFactoryMethodsUnitTest {
-
- @Test
- public void givenANoneOptionElement_whenCreated_thenCorrect() {
- Option none = None();
- assertFalse(none == null);
- assertEquals(none, Option.none());
- }
-
- @Test
- public void givenASomeOptionElement_whenCreated_thenCorrect() {
- Option some = Some(1);
- assertFalse(some == null);
- assertTrue(some.contains(1));
- }
-
- @Test
- public void givenATupleElement_whenCreated_thenCorrect() {
- Tuple3 tuple = Tuple('a', "chain", 2);
- assertTrue(tuple!=null);
- assertEquals(tuple._1(), new Character('a'));
- assertEquals(tuple._2(), "chain");
- assertEquals(tuple._3().intValue(), 2);
- }
-
- @Test
- public void givenASuccessObject_whenEvaluated_thenSuccess() {
- Try integer = Success(55);
- assertEquals(integer.get().intValue(), 55);
- }
- @Test
- public void givenAFailureObject_whenEvaluated_thenExceptionThrown() {
- Try failure = Failure(new Exception("Exception X encapsulated here"));
-
- try {
- Integer i = failure.get();// evaluate a failure raise the exception
- System.out.println(i);// not executed
- } catch (Exception e) {
- assertEquals(e.getMessage(), "Exception X encapsulated here");
- }
- }
-
- @Test
- public void givenAList_whenCreated_thenCorrect() {
- List list = List(1, 2, 3, 4, 5);
-
- assertEquals(list.size(), 5);
- assertEquals(list.get(0).intValue(), 1);
- }
-
- @Test
- public void givenAnEmptyList_whenCreated_thenCorrect() {
- List empty = List();
-
- assertEquals(empty.size(), 0);
- assertEquals(empty, List.empty());
- }
-
- @Test
- public void givenAnArray_whenCreated_thenCorrect() {
- Array array = Array(1, 2, 3, 4, 5);
-
- assertEquals(array.size(), 5);
- assertEquals(array.get(0).intValue(), 1);
- }
-
- @Test
- public void givenAStream_whenCreated_thenCorrect() {
- Stream stream = Stream(1, 2, 3, 4, 5);
-
- assertEquals(stream.size(), 5);
- assertEquals(stream.get(0).intValue(), 1);
- }
-
- @Test
- public void givenAVector_whenCreated_thenCorrect() {
- Vector vector = Vector(1, 2, 3, 4, 5);
-
- assertEquals(vector.size(), 5);
- assertEquals(vector.get(0).intValue(), 1);
- }
-}
+package com.baeldung.vavr.collections;
+
+import static io.vavr.API.Array;
+import static io.vavr.API.Failure;
+import static io.vavr.API.List;
+import static io.vavr.API.None;
+import static io.vavr.API.Some;
+import static io.vavr.API.Stream;
+import static io.vavr.API.Success;
+import static io.vavr.API.Tuple;
+import static io.vavr.API.Vector;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import io.vavr.Tuple3;
+import io.vavr.collection.Array;
+import io.vavr.collection.List;
+import io.vavr.collection.Stream;
+import io.vavr.collection.Vector;
+import io.vavr.control.Option;
+import io.vavr.control.Try;
+
+public class CollectionFactoryMethodsUnitTest {
+
+ @Test
+ public void givenANoneOptionElement_whenCreated_thenCorrect() {
+ Option none = None();
+ assertFalse(none == null);
+ assertEquals(none, Option.none());
+ }
+
+ @Test
+ public void givenASomeOptionElement_whenCreated_thenCorrect() {
+ Option some = Some(1);
+ assertFalse(some == null);
+ assertTrue(some.contains(1));
+ }
+
+ @Test
+ public void givenATupleElement_whenCreated_thenCorrect() {
+ Tuple3 tuple = Tuple('a', "chain", 2);
+ assertTrue(tuple!=null);
+ assertEquals(tuple._1(), new Character('a'));
+ assertEquals(tuple._2(), "chain");
+ assertEquals(tuple._3().intValue(), 2);
+ }
+
+ @Test
+ public void givenASuccessObject_whenEvaluated_thenSuccess() {
+ Try integer = Success(55);
+ assertEquals(integer.get().intValue(), 55);
+ }
+ @Test
+ public void givenAFailureObject_whenEvaluated_thenExceptionThrown() {
+ Try failure = Failure(new Exception("Exception X encapsulated here"));
+
+ try {
+ Integer i = failure.get();// evaluate a failure raise the exception
+ System.out.println(i);// not executed
+ } catch (Exception e) {
+ assertEquals(e.getMessage(), "Exception X encapsulated here");
+ }
+ }
+
+ @Test
+ public void givenAList_whenCreated_thenCorrect() {
+ List list = List(1, 2, 3, 4, 5);
+
+ assertEquals(list.size(), 5);
+ assertEquals(list.get(0).intValue(), 1);
+ }
+
+ @Test
+ public void givenAnEmptyList_whenCreated_thenCorrect() {
+ List empty = List();
+
+ assertEquals(empty.size(), 0);
+ assertEquals(empty, List.empty());
+ }
+
+ @Test
+ public void givenAnArray_whenCreated_thenCorrect() {
+ Array array = Array(1, 2, 3, 4, 5);
+
+ assertEquals(array.size(), 5);
+ assertEquals(array.get(0).intValue(), 1);
+ }
+
+ @Test
+ public void givenAStream_whenCreated_thenCorrect() {
+ Stream stream = Stream(1, 2, 3, 4, 5);
+
+ assertEquals(stream.size(), 5);
+ assertEquals(stream.get(0).intValue(), 1);
+ }
+
+ @Test
+ public void givenAVector_whenCreated_thenCorrect() {
+ Vector vector = Vector(1, 2, 3, 4, 5);
+
+ assertEquals(vector.size(), 5);
+ assertEquals(vector.get(0).intValue(), 1);
+ }
+}
diff --git a/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java
similarity index 96%
rename from vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java
index 140593218f..5be2526c0b 100644
--- a/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java
+++ b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrExceptionHandlingUnitTest.java
@@ -1,87 +1,87 @@
-package com.baeldung.vavr.exception.handling;
-
-import io.vavr.API;
-import io.vavr.CheckedFunction1;
-import io.vavr.Value;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
-public class VavrExceptionHandlingUnitTest {
-
- private static final Logger LOG = LoggerFactory.getLogger(VavrExceptionHandlingUnitTest.class);
-
- private List integers;
- private List validIntegersOnly;
-
- @Before
- public void init() {
- integers = Arrays.asList(3, 9, 7, 0, 10, 20);
- validIntegersOnly = Arrays.asList(3, 9, 7, 5, 10, 20);
- }
-
- @Test
- public void exceptionCausingMethod_UsingCheckedFunction_ThenSuccess() {
- CheckedFunction1 fn = i -> readFromFile(i);
-
- validIntegersOnly.stream().map(fn.unchecked()).forEach(i -> LOG.debug("{}", i));
- }
-
- @Test(expected = IOException.class)
- public void exceptionCausingMethod_UsingCheckedFunction_ThenFailure() {
- CheckedFunction1 fn = i -> readFromFile(i);
-
- integers.stream().map(fn.unchecked()).forEach(i -> LOG.debug("{}", i));
- }
-
- @Test
- public void exceptionCausingMethod_UsingAPI_ThenSuccess() {
- validIntegersOnly.stream().map(API.unchecked(i -> readFromFile(i))).forEach(i -> LOG.debug("{}", i));
- }
-
- @Test(expected = IOException.class)
- public void exceptionCausingMethod_UsingAPI_ThenFailure() {
- integers.stream().map(API.unchecked(i -> readFromFile(i))).forEach(i -> LOG.debug("{}", i));
- }
-
- @Test
- public void exceptionCausingMethod_UsingLift_ThenSuccess() {
- validIntegersOnly.stream().map(CheckedFunction1.lift(i -> readFromFile(i)))
- .map(i -> i.getOrElse(-1))
- .forEach(i -> {
- Assert.assertNotSame(-1, i);
- LOG.debug("{}", i);
- });
- }
-
- @Test
- public void exceptionCausingMethod_UsingLift_ThenFailure() {
- integers.stream()
- .map(CheckedFunction1.lift(i -> readFromFile(i)))
- .map(i -> i.getOrElse(-1))
- .forEach(i -> LOG.debug("{}", i));
-
- }
-
- @Test
- public void exceptionCausingMethod_UsingTry_ThenSuccess() {
- integers.stream()
- .map(CheckedFunction1.liftTry(VavrExceptionHandlingUnitTest::readFromFile))
- .flatMap(Value::toJavaStream)
- .forEach(i -> LOG.debug("{}", i));
- }
-
- private static Integer readFromFile(Integer i) throws IOException {
- if (i == 0) {
- throw new IOException(); // mock IOException
- }
- return i * i;
- }
-
-}
+package com.baeldung.vavr.exception.handling;
+
+import io.vavr.API;
+import io.vavr.CheckedFunction1;
+import io.vavr.Value;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+
+public class VavrExceptionHandlingUnitTest {
+
+ private static final Logger LOG = LoggerFactory.getLogger(VavrExceptionHandlingUnitTest.class);
+
+ private List integers;
+ private List validIntegersOnly;
+
+ @Before
+ public void init() {
+ integers = Arrays.asList(3, 9, 7, 0, 10, 20);
+ validIntegersOnly = Arrays.asList(3, 9, 7, 5, 10, 20);
+ }
+
+ @Test
+ public void exceptionCausingMethod_UsingCheckedFunction_ThenSuccess() {
+ CheckedFunction1 fn = i -> readFromFile(i);
+
+ validIntegersOnly.stream().map(fn.unchecked()).forEach(i -> LOG.debug("{}", i));
+ }
+
+ @Test(expected = IOException.class)
+ public void exceptionCausingMethod_UsingCheckedFunction_ThenFailure() {
+ CheckedFunction1 fn = i -> readFromFile(i);
+
+ integers.stream().map(fn.unchecked()).forEach(i -> LOG.debug("{}", i));
+ }
+
+ @Test
+ public void exceptionCausingMethod_UsingAPI_ThenSuccess() {
+ validIntegersOnly.stream().map(API.unchecked(i -> readFromFile(i))).forEach(i -> LOG.debug("{}", i));
+ }
+
+ @Test(expected = IOException.class)
+ public void exceptionCausingMethod_UsingAPI_ThenFailure() {
+ integers.stream().map(API.unchecked(i -> readFromFile(i))).forEach(i -> LOG.debug("{}", i));
+ }
+
+ @Test
+ public void exceptionCausingMethod_UsingLift_ThenSuccess() {
+ validIntegersOnly.stream().map(CheckedFunction1.lift(i -> readFromFile(i)))
+ .map(i -> i.getOrElse(-1))
+ .forEach(i -> {
+ Assert.assertNotSame(-1, i);
+ LOG.debug("{}", i);
+ });
+ }
+
+ @Test
+ public void exceptionCausingMethod_UsingLift_ThenFailure() {
+ integers.stream()
+ .map(CheckedFunction1.lift(i -> readFromFile(i)))
+ .map(i -> i.getOrElse(-1))
+ .forEach(i -> LOG.debug("{}", i));
+
+ }
+
+ @Test
+ public void exceptionCausingMethod_UsingTry_ThenSuccess() {
+ integers.stream()
+ .map(CheckedFunction1.liftTry(VavrExceptionHandlingUnitTest::readFromFile))
+ .flatMap(Value::toJavaStream)
+ .forEach(i -> LOG.debug("{}", i));
+ }
+
+ private static Integer readFromFile(Integer i) throws IOException {
+ if (i == 0) {
+ throw new IOException(); // mock IOException
+ }
+ return i * i;
+ }
+
+}
diff --git a/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrTryUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrTryUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrTryUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/exception/handling/VavrTryUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/future/FutureUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/future/FutureUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/future/FutureUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/future/FutureUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavrvalidation/validator/UserValidatorUnitTest.java
diff --git a/vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java b/vavr-modules/vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java
similarity index 100%
rename from vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java
rename to vavr-modules/vavr/src/test/java/com/baeldung/vavrvalidation/validator/ValidationUnitTest.java