diff --git a/cassandra/pom.xml b/cassandra/pom.xml
index 60afd4a8..1f698a0c 100644
--- a/cassandra/pom.xml
+++ b/cassandra/pom.xml
@@ -20,7 +20,7 @@
util
example
java8
- reactive
+
diff --git a/cassandra/reactive/pom.xml b/cassandra/reactive/pom.xml
index 678f6cfb..e3bcf226 100644
--- a/cassandra/reactive/pom.xml
+++ b/cassandra/reactive/pom.xml
@@ -12,11 +12,11 @@
Spring Data Cassandra - Reactive features
- Kay-M1
- 5.0.0.M3
- 3.0.3.RELEASE
- 1.2.1
- 1.2.0
+ Kay-RC2
+ 5.0.0.RC3
+ 3.1.0.M3
+ 2.1.3
+ 1.2.1
@@ -26,11 +26,6 @@
spring-data-commons
-
- org.springframework.data
- spring-cql
-
-
org.springframework.data
spring-data-cassandra
@@ -42,7 +37,7 @@
- io.reactivex
+ io.reactivex.rxjava2
rxjava
${rxjava.version}
diff --git a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/ApplicationConfiguration.java b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/ApplicationConfiguration.java
index 6bb15377..d3d023a3 100644
--- a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/ApplicationConfiguration.java
+++ b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/ApplicationConfiguration.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
package example.springdata.cassandra.people;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.cassandra.config.AbstractReactiveCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
-import org.springframework.data.cassandra.config.java.AbstractReactiveCassandraConfiguration;
import org.springframework.data.cassandra.repository.config.EnableReactiveCassandraRepositories;
/**
diff --git a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/Person.java b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/Person.java
index db8a92df..7573efa7 100644
--- a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/Person.java
+++ b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/Person.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-import org.springframework.cassandra.core.PrimaryKeyType;
-import org.springframework.data.cassandra.mapping.PrimaryKeyColumn;
-import org.springframework.data.cassandra.mapping.Table;
+import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
+import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
+import org.springframework.data.cassandra.core.mapping.Table;
/**
* An entity to represent a Person.
diff --git a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava1PersonRepository.java b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava2PersonRepository.java
similarity index 88%
rename from cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava1PersonRepository.java
rename to cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava2PersonRepository.java
index 6c9ad53c..401e0e33 100644
--- a/cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava1PersonRepository.java
+++ b/cassandra/reactive/src/main/java/example/springdata/cassandra/people/RxJava2PersonRepository.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,18 +15,18 @@
*/
package example.springdata.cassandra.people;
-import rx.Observable;
-import rx.Single;
+import io.reactivex.Observable;
+import io.reactivex.Single;
import org.springframework.data.cassandra.repository.Query;
-import org.springframework.data.repository.reactive.RxJava1CrudRepository;
+import org.springframework.data.repository.reactive.RxJava2CrudRepository;
/**
* Repository interface to manage {@link Person} instances.
*
* @author Mark Paluch
*/
-public interface RxJava1PersonRepository extends RxJava1CrudRepository {
+public interface RxJava2PersonRepository extends RxJava2CrudRepository {
/**
* Derived query selecting by {@code lastname}.
diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java
index 52c58d35..dd0383a2 100644
--- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java
+++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -77,7 +77,7 @@ public class ReactiveCassandraTemplateIntegrationTest {
.last() //
.flatMap(v -> template.count(Person.class)) //
.doOnNext(System.out::println) //
- .doOnComplete(countDownLatch::countDown) //
+ .doOnSuccess(it -> countDownLatch.countDown()) //
.doOnError(throwable -> countDownLatch.countDown()) //
.subscribe();
diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java
index 1e863578..6869cd25 100644
--- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java
+++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ public class ReactivePersonRepositoryIntegrationTest {
public void setUp() {
repository.deleteAll() //
- .thenMany(repository.save(Flux.just(new Person("Walter", "White", 50), //
+ .thenMany(repository.saveAll(Flux.just(new Person("Walter", "White", 50), //
new Person("Skyler", "White", 45), //
new Person("Saul", "Goodman", 42), //
new Person("Jesse", "Pinkman", 27))))
@@ -70,12 +70,12 @@ public class ReactivePersonRepositoryIntegrationTest {
repository.count() //
.doOnNext(System.out::println) //
- .thenMany(repository.save(Flux.just(new Person("Hank", "Schrader", 43), //
+ .thenMany(repository.saveAll(Flux.just(new Person("Hank", "Schrader", 43), //
new Person("Mike", "Ehrmantraut", 62)))) //
.last() //
.flatMap(v -> repository.count()) //
.doOnNext(System.out::println) //
- .doOnComplete(countDownLatch::countDown) //
+ .doOnSuccess(it -> countDownLatch.countDown()) //
.doOnError(throwable -> countDownLatch.countDown()) //
.subscribe();
diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava1PersonRepositoryIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java
similarity index 84%
rename from cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava1PersonRepositoryIntegrationTest.java
rename to cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java
index 343de838..a62d95bb 100644
--- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava1PersonRepositoryIntegrationTest.java
+++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@ package example.springdata.cassandra.people;
import static org.assertj.core.api.Assertions.*;
import example.springdata.cassandra.util.CassandraKeyspace;
-import rx.Completable;
-import rx.Observable;
-import rx.Single;
+import io.reactivex.Completable;
+import io.reactivex.Flowable;
+import io.reactivex.Single;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -35,7 +35,7 @@ import org.springframework.data.cassandra.core.ReactiveCassandraOperations;
import org.springframework.test.context.junit4.SpringRunner;
/**
- * Integration test for {@link RxJava1PersonRepository} using RxJava1 types. Note that
+ * Integration test for {@link RxJava2PersonRepository} using RxJava1 types. Note that
* {@link ReactiveCassandraOperations} is only available using Project Reactor types as the native Template API
* implementation does not come in multiple reactive flavors.
*
@@ -43,11 +43,11 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-public class RxJava1PersonRepositoryIntegrationTest {
+public class RxJava2PersonRepositoryIntegrationTest {
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost();
- @Autowired RxJava1PersonRepository repository;
+ @Autowired RxJava2PersonRepository repository;
@Autowired ReactiveCassandraOperations operations;
@Before
@@ -55,12 +55,12 @@ public class RxJava1PersonRepositoryIntegrationTest {
Completable deleteAll = repository.deleteAll();
- Observable save = repository.save(Observable.just(new Person("Walter", "White", 50), //
+ Flowable save = repository.saveAll(Flowable.just(new Person("Walter", "White", 50), //
new Person("Skyler", "White", 45), //
new Person("Saul", "Goodman", 42), //
new Person("Jesse", "Pinkman", 27)));
- deleteAll.andThen(save).toBlocking().last();
+ deleteAll.andThen(save).blockingLast();
}
/**
@@ -73,10 +73,10 @@ public class RxJava1PersonRepositoryIntegrationTest {
repository.count() //
.doOnSuccess(System.out::println) //
- .toObservable() //
- .switchMap(count -> repository.save(Observable.just(new Person("Hank", "Schrader", 43), //
+ .toFlowable() //
+ .switchMap(count -> repository.saveAll(Flowable.just(new Person("Hank", "Schrader", 43), //
new Person("Mike", "Ehrmantraut", 62)))) //
- .last() //
+ .lastElement() //
.toSingle() //
.flatMap(v -> repository.count()) //
.doOnSuccess(System.out::println) //
@@ -98,7 +98,7 @@ public class RxJava1PersonRepositoryIntegrationTest {
repository.findAll() //
.doOnNext(System.out::println) //
- .doOnCompleted(countDownLatch::countDown) //
+ .doOnEach(it -> countDownLatch.countDown()) //
.doOnError(throwable -> countDownLatch.countDown()) //
.subscribe();
@@ -113,8 +113,7 @@ public class RxJava1PersonRepositoryIntegrationTest {
List whites = repository.findByLastname("White") //
.toList() //
- .toBlocking() //
- .last();
+ .blockingGet();
assertThat(whites).hasSize(2);
}
@@ -126,8 +125,7 @@ public class RxJava1PersonRepositoryIntegrationTest {
public void shouldQueryDataWithStringQuery() {
Person heisenberg = repository.findByFirstnameAndLastname("Walter", "White") //
- .toBlocking() //
- .value();
+ .blockingGet();
assertThat(heisenberg).isNotNull();
}
@@ -140,8 +138,7 @@ public class RxJava1PersonRepositoryIntegrationTest {
List whites = repository.findByLastname(Single.just("White")) //
.toList() //
- .toBlocking() //
- .single();
+ .blockingGet();
assertThat(whites).hasSize(2);
}
@@ -153,7 +150,7 @@ public class RxJava1PersonRepositoryIntegrationTest {
public void shouldQueryDataWithMixedDeferredQueryDerivation() {
Person heisenberg = repository.findByFirstnameAndLastname(Single.just("Walter"), "White") //
- .toBlocking().value();
+ .blockingGet();
assertThat(heisenberg).isNotNull();
}
diff --git a/pom.xml b/pom.xml
index afacd347..abc824ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.5.4.RELEASE
+ 1.5.6.RELEASE
diff --git a/redis/reactive/pom.xml b/redis/reactive/pom.xml
index bb1e60e8..3684906e 100644
--- a/redis/reactive/pom.xml
+++ b/redis/reactive/pom.xml
@@ -13,10 +13,10 @@
- Kay-M1
- 5.0.0.M3
- 3.0.3.RELEASE
- 5.0.0.Beta1
+ Kay-RC2
+ 5.0.0.RC3
+ 3.1.0.M3
+ 5.0.0.RC1
@@ -32,8 +32,8 @@
- biz.paluch.redis
- lettuce
+ io.lettuce
+ lettuce-core
${lettuce.version}
diff --git a/redis/reactive/src/test/java/example/springdata/redis/commands/KeyOperationsTests.java b/redis/reactive/src/test/java/example/springdata/redis/commands/KeyOperationsTests.java
index 3f124ab1..52bf3d81 100644
--- a/redis/reactive/src/test/java/example/springdata/redis/commands/KeyOperationsTests.java
+++ b/redis/reactive/src/test/java/example/springdata/redis/commands/KeyOperationsTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 the original author or authors.
+ * Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,11 @@
*/
package example.springdata.redis.commands;
+import example.springdata.redis.RedisTestConfiguration;
+import example.springdata.redis.test.util.RequiresRedisServer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
import java.nio.ByteBuffer;
import java.time.Duration;
import java.util.Collections;
@@ -28,17 +33,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.ReactiveListCommands.PopResult;
import org.springframework.data.redis.connection.ReactiveRedisConnection;
+import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
import org.springframework.data.redis.connection.ReactiveStringCommands.SetCommand;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.test.context.junit4.SpringRunner;
-import example.springdata.redis.RedisTestConfiguration;
-import example.springdata.redis.test.util.RequiresRedisServer;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
/**
* Show usage of reactive operations on Redis keys using low level API provided by {@link RedisConnectionFactory}.
*
@@ -54,7 +55,7 @@ public class KeyOperationsTests {
private static final String PREFIX = KeyOperationsTests.class.getSimpleName();
private static final String KEY_PATTERN = PREFIX + "*";
- @Autowired RedisConnectionFactory connectionFactory;
+ @Autowired ReactiveRedisConnectionFactory connectionFactory;
private ReactiveRedisConnection connection;
private RedisSerializer serializer = new StringRedisSerializer();
@@ -76,7 +77,7 @@ public class KeyOperationsTests {
this.connection.keyCommands() //
.keys(ByteBuffer.wrap(serializer.serialize(KEY_PATTERN))) //
- .flatMap(Flux::fromIterable) //
+ .flatMapMany(Flux::fromIterable) //
.doOnNext(byteBuffer -> System.out.println(toString(byteBuffer))) //
.count() //
.doOnSuccess(count -> System.out.println(String.format("Total No. found: %s", count))) //
diff --git a/web/projection/pom.xml b/web/projection/pom.xml
index 61ec3739..60dff247 100644
--- a/web/projection/pom.xml
+++ b/web/projection/pom.xml
@@ -32,7 +32,7 @@
org.xmlbeam
xmlprojector
- 1.4.8
+ 1.4.13
diff --git a/web/projection/src/main/resources/application.properties b/web/projection/src/main/resources/application.properties
index 7ea71449..bae39292 100644
--- a/web/projection/src/main/resources/application.properties
+++ b/web/projection/src/main/resources/application.properties
@@ -1,2 +1 @@
logging.level.org.springframework.web=DEBUG
-logging.level.org.springframework.boot=DEBUG