cache = Caffeine.newBuilder()
+ .maximumSize(100)
+ .recordStats()
+ .build(k -> DataObject.get("Data for " + k));
+ cache.get("A");
+ cache.get("A");
+
+ assertEquals(1, cache.stats().hitCount());
+ assertEquals(1, cache.stats().missCount());
+ }
+}
\ No newline at end of file
diff --git a/mockito/README.md b/mockito/README.md
index 6de2fb0c7a..2407a5c3c5 100644
--- a/mockito/README.md
+++ b/mockito/README.md
@@ -10,3 +10,4 @@
- [Mockito – @Mock, @Spy, @Captor and @InjectMocks](http://www.baeldung.com/mockito-annotations)
- [Mockito’s Mock Methods](http://www.baeldung.com/mockito-mock-methods)
- [Introduction to PowerMock](http://www.baeldung.com/intro-to-powermock)
+- [Mocking Exception Throwing using Mockito](http://www.baeldung.com/mockito-exceptions)
diff --git a/pom.xml b/pom.xml
index c3915e4fce..f44cf9481e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
+ asm
atomix
apache-cayenne
aws
@@ -248,6 +249,7 @@
mockserver
undertow
vertx-and-rxjava
+ saas
deeplearning4j
diff --git a/rxjava/pom.xml b/rxjava/pom.xml
index 783833243b..0f950914ff 100644
--- a/rxjava/pom.xml
+++ b/rxjava/pom.xml
@@ -25,6 +25,12 @@
2.1.3
+
+ io.reactivex
+ rxjava-math
+ 1.0.0
+
+
com.jayway.awaitility
awaitility
diff --git a/rxjava/src/test/java/com/baeldung/rxjava/operators/RxAggregateOperatorsTest.java b/rxjava/src/test/java/com/baeldung/rxjava/operators/RxAggregateOperatorsTest.java
new file mode 100644
index 0000000000..1af41f795f
--- /dev/null
+++ b/rxjava/src/test/java/com/baeldung/rxjava/operators/RxAggregateOperatorsTest.java
@@ -0,0 +1,210 @@
+package com.baeldung.rxjava.operators;
+
+import org.junit.Test;
+import rx.Observable;
+import rx.observers.TestSubscriber;
+
+import java.util.*;
+
+public class RxAggregateOperatorsTest {
+
+ @Test
+ public void givenTwoObservable_whenConcatenatingThem_thenSuccessfull() {
+ // given
+ List listOne = Arrays.asList(1, 2, 3, 4);
+ Observable observableOne = Observable.from(listOne);
+
+ List listTwo = Arrays.asList(5, 6, 7, 8);
+ Observable observableTwo = Observable.from(listTwo);
+
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable concatObservable = observableOne.concatWith(observableTwo);
+
+ concatObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(8);
+ subscriber.assertValues(1, 2, 3, 4, 5, 6, 7, 8);
+
+ }
+
+ @Test
+ public void givenObservable_whenCounting_thenObtainingNumberOfElements() {
+ // given
+ List lettersList = Arrays.asList("A", "B", "C", "D", "E", "F", "G");
+
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable sourceObservable = Observable.from(lettersList)
+ .count();
+ sourceObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValue(7);
+ }
+
+ @Test
+ public void givenObservable_whenReducing_thenObtainingInvertedConcatenatedString() {
+ // given
+ List list = Arrays.asList("A", "B", "C", "D", "E", "F", "G");
+
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable reduceObservable = Observable.from(list)
+ .reduce((letter1, letter2) -> letter2 + letter1);
+ reduceObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValue("GFEDCBA");
+ }
+
+ @Test
+ public void givenObservable_whenCollecting_thenObtainingASet() {
+ // given
+ List list = Arrays.asList("A", "B", "C", "B", "B", "A", "D");
+
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable reduceListObservable = Observable.from(list)
+ .collect(() -> new HashSet(), (set, item) -> set.add(item));
+ reduceListObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValues(new HashSet(list));
+ }
+
+ @Test
+ public void givenObservable_whenUsingToList_thenObtainedAList() {
+ // given
+ Observable sourceObservable = Observable.range(1, 5);
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable> listObservable = sourceObservable.toList();
+ listObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValue(Arrays.asList(1, 2, 3, 4, 5));
+
+ }
+
+ @Test
+ public void givenObservable_whenUsingToSortedList_thenObtainedASortedList() {
+ // given
+ Observable sourceObservable = Observable.range(10, 5);
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable> listObservable = sourceObservable.toSortedList();
+ listObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValue(Arrays.asList(10, 11, 12, 13, 14));
+ }
+
+ @Test
+ public void givenObservable_whenUsingToSortedListWithComparator_thenObtainedAnInverseSortedList() {
+ // given
+ Observable sourceObservable = Observable.range(10, 5);
+ TestSubscriber subscriber = TestSubscriber.create();
+
+ // when
+ Observable> listObservable = sourceObservable.toSortedList((int1, int2) -> int2 - int1);
+ listObservable.subscribe(subscriber);
+
+ // then
+ subscriber.assertCompleted();
+ subscriber.assertNoErrors();
+ subscriber.assertValueCount(1);
+ subscriber.assertValue(Arrays.asList(14, 13, 12, 11, 10));
+
+ }
+
+ @Test
+ public void givenObservable_whenUsingToMap_thenObtainedAMap() {
+ // given
+ Observable bookObservable = Observable.just(new Book("The North Water", 2016), new Book("Origin", 2017), new Book("Sleeping Beauties", 2017));
+ TestSubscriber
-
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
@@ -280,4 +284,4 @@
-
\ No newline at end of file
+
diff --git a/spring-all/src/main/webapp/WEB-INF/view/viewPage.html b/spring-all/src/main/webapp/WEB-INF/view/viewPage.html
new file mode 100644
index 0000000000..71f766407e
--- /dev/null
+++ b/spring-all/src/main/webapp/WEB-INF/view/viewPage.html
@@ -0,0 +1,9 @@
+
+
+
+ Title
+
+
+ Web Application. Passed parameter : th:text="${message}"
+
+
diff --git a/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp b/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp
deleted file mode 100644
index ca638b33f5..0000000000
--- a/spring-all/src/main/webapp/WEB-INF/view/viewPage.jsp
+++ /dev/null
@@ -1,11 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
-
- Title
-
-
-
- Web Application. Passed parameter : ${message}
-
-
-