From c70752ee448acfff5937f109850a33e60eb80de6 Mon Sep 17 00:00:00 2001 From: Seun Matt Date: Sun, 17 Sep 2017 15:30:10 +0100 Subject: [PATCH] update N1QL Example code --- couchbase-sdk/pom.xml | 6 ++-- .../baeldung/couchbase/n1ql/CodeSnippets.java | 16 ++++++++-- .../couchbase/n1ql/N1QLIntegrationTest.java | 31 ++++++++++--------- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/couchbase-sdk/pom.xml b/couchbase-sdk/pom.xml index d78ceb8933..f361b333b4 100644 --- a/couchbase-sdk/pom.xml +++ b/couchbase-sdk/pom.xml @@ -29,9 +29,9 @@ ${jackson-version} - io.vavr - vavr - ${vavr-version} + io.vavr + vavr + ${vavr-version} diff --git a/couchbase-sdk/src/main/java/com/baeldung/couchbase/n1ql/CodeSnippets.java b/couchbase-sdk/src/main/java/com/baeldung/couchbase/n1ql/CodeSnippets.java index 999dcd897f..72d48e78c3 100644 --- a/couchbase-sdk/src/main/java/com/baeldung/couchbase/n1ql/CodeSnippets.java +++ b/couchbase-sdk/src/main/java/com/baeldung/couchbase/n1ql/CodeSnippets.java @@ -5,16 +5,26 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import io.vavr.control.Try; +import java.io.IOException; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; public class CodeSnippets { + private static ObjectMapper objectMapper = new ObjectMapper(); + public static List extractJsonResult(N1qlQueryResult result) { - ObjectMapper objectMapper = new ObjectMapper(); return result.allRows().stream() - .map(row -> Try.of(() -> objectMapper.readTree(row.value().toString())) - .getOrNull()) + .map(row -> { + try { + return objectMapper.readTree(row.value().toString()); + }catch (IOException e) { + e.printStackTrace(); + return null; + } + }) + .filter(Objects::nonNull) .collect(Collectors.toList()); } diff --git a/couchbase-sdk/src/test/java/com/baeldung/couchbase/n1ql/N1QLIntegrationTest.java b/couchbase-sdk/src/test/java/com/baeldung/couchbase/n1ql/N1QLIntegrationTest.java index d05b107098..ab85f14c84 100644 --- a/couchbase-sdk/src/test/java/com/baeldung/couchbase/n1ql/N1QLIntegrationTest.java +++ b/couchbase-sdk/src/test/java/com/baeldung/couchbase/n1ql/N1QLIntegrationTest.java @@ -12,6 +12,7 @@ import com.couchbase.client.java.query.N1qlQueryResult; import com.couchbase.client.java.query.N1qlQueryRow; import com.couchbase.client.java.query.Statement; import com.fasterxml.jackson.databind.JsonNode; +import io.vavr.collection.Stream; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -29,6 +30,7 @@ import rx.Observable; import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; import static com.baeldung.couchbase.n1ql.CodeSnippets.extractJsonResult; import static com.couchbase.client.java.query.Select.select; @@ -190,23 +192,24 @@ public class N1QLIntegrationTest { @Test public void givenDocuments_whenBatchInsert_thenResult() { Bucket bucket = bucketFactory.getTravelSampleBucket(); - int docsToCreate = 10; - List documents = new ArrayList<>(); - for (int i = 5; i < docsToCreate; i++) { + + List documents = Stream.rangeClosed(0,10) + .map( i -> { JsonObject content = JsonObject.create() - .put("id", i) - .put("type", "airline") - .put("name", "Sample Airline " + i); - documents.add(JsonDocument.create("cust_" + i, content)); - } + .put("id", i) + .put("type", "airline") + .put("name", "Sample Airline " + i); + return JsonDocument.create("cust_" + i, content); + }) + .collect(Collectors.toList()); List r5 = Observable - .from(documents) - .flatMap(doc -> bucket.async().insert(doc)) - .toList() - .last() - .toBlocking() - .single(); + .from(documents) + .flatMap(doc -> bucket.async().insert(doc)) + .toList() + .last() + .toBlocking() + .single(); r5.forEach(System.out::println); }