Skip to content

Commit 1e65272

Browse files
committed
Drop support for RxJava 1 and 2.
Closes #1173
1 parent f9cb278 commit 1e65272

File tree

7 files changed

+45
-147
lines changed

7 files changed

+45
-147
lines changed

spring-data-cassandra/pom.xml

+2-16
Original file line numberDiff line numberDiff line change
@@ -86,23 +86,9 @@
8686
</dependency>
8787

8888
<dependency>
89-
<groupId>io.reactivex</groupId>
89+
<groupId>io.reactivex.rxjava3</groupId>
9090
<artifactId>rxjava</artifactId>
91-
<version>${rxjava}</version>
92-
<optional>true</optional>
93-
</dependency>
94-
95-
<dependency>
96-
<groupId>io.reactivex</groupId>
97-
<artifactId>rxjava-reactive-streams</artifactId>
98-
<version>${rxjava-reactive-streams}</version>
99-
<optional>true</optional>
100-
</dependency>
101-
102-
<dependency>
103-
<groupId>io.reactivex.rxjava2</groupId>
104-
<artifactId>rxjava</artifactId>
105-
<version>${rxjava2}</version>
91+
<version>${rxjava3}</version>
10692
<optional>true</optional>
10793
</dependency>
10894

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactoryBean.java

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
* @author Mark Paluch
3636
* @since 2.0
3737
* @see org.springframework.data.repository.reactive.ReactiveSortingRepository
38-
* @see org.springframework.data.repository.reactive.RxJava2SortingRepository
3938
*/
4039
public class ReactiveCassandraRepositoryFactoryBean<T extends Repository<S, ID>, S, ID>
4140
extends RepositoryFactoryBeanSupport<T, S, ID> {

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/ConvertingReactiveCassandraRepositoryTests.java

+32-120
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@
1717

1818
import static org.assertj.core.api.Assertions.*;
1919

20-
import io.reactivex.Flowable;
21-
import io.reactivex.Maybe;
20+
import io.reactivex.rxjava3.core.Single;
2221
import reactor.core.publisher.Flux;
2322
import reactor.core.publisher.Mono;
2423
import reactor.test.StepVerifier;
25-
import rx.Observable;
26-
import rx.Single;
2724

2825
import java.util.Arrays;
2926
import java.util.List;
@@ -40,7 +37,6 @@
4037
import org.springframework.data.cassandra.repository.support.AbstractSpringDataEmbeddedCassandraIntegrationTest;
4138
import org.springframework.data.cassandra.repository.support.IntegrationTestConfig;
4239
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
43-
import org.springframework.data.repository.reactive.RxJava2CrudRepository;
4440
import org.springframework.stereotype.Repository;
4541
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
4642

@@ -71,8 +67,7 @@ public String[] getEntityBasePackages() {
7167
@Autowired CqlSession session;
7268
@Autowired MixedUserRepository reactiveRepository;
7369
@Autowired UserRepostitory reactiveUserRepostitory;
74-
@Autowired RxJava1UserRepository rxJava1UserRepository;
75-
@Autowired RxJava2UserRepository rxJava2UserRepository;
70+
@Autowired RxJava3UserRepository rxJava3UserRepository;
7671

7772
private User dave;
7873
private User oliver;
@@ -123,143 +118,72 @@ void dtoProjectionShouldWork() {
123118
}
124119

125120
@Test // DATACASS-335
126-
void simpleRxJava1MethodsShouldWork() {
121+
void simpleRxJava3MethodsShouldWork() throws InterruptedException {
127122

128-
rxJava1UserRepository.existsById(dave.getId()) //
123+
rxJava3UserRepository.existsById(dave.getId()) //
129124
.test() //
130-
.awaitTerminalEvent() //
125+
.await() //
131126
.assertResult(true) //
132-
.assertCompleted() //
127+
.assertComplete() //
133128
.assertNoErrors();
134129
}
135130

136131
@Test // DATACASS-335
137-
void existsWithSingleRxJava1IdMethodsShouldWork() {
132+
void existsWithSingleRxJava3IdMethodsShouldWork() throws InterruptedException {
138133

139-
rxJava1UserRepository.existsById(Single.just(dave.getId())) //
134+
rxJava3UserRepository.existsById(Single.just(dave.getId())) //
140135
.test() //
141-
.awaitTerminalEvent() //
136+
.await() //
142137
.assertResult(true) //
143-
.assertCompleted() //
138+
.assertComplete() //
144139
.assertNoErrors();
145140
}
146141

147142
@Test // DATACASS-335
148-
void singleRxJava1QueryMethodShouldWork() {
143+
void singleRxJava3QueryMethodShouldWork() throws InterruptedException {
149144

150-
rxJava1UserRepository.findManyByLastname(dave.getLastname()) //
145+
rxJava3UserRepository.findManyByLastname(dave.getLastname()) //
151146
.test() //
152-
.awaitTerminalEvent() //
147+
.await() //
153148
.assertValueCount(2) //
154149
.assertNoErrors() //
155-
.assertCompleted();
150+
.assertComplete();
156151
}
157152

158153
@Test // DATACASS-335
159-
void singleProjectedRxJava1QueryMethodShouldWork() {
154+
void singleProjectedRxJava3QueryMethodShouldWork() throws InterruptedException {
160155

161-
List<ProjectedUser> values = rxJava1UserRepository.findProjectedByLastname(carter.getLastname()) //
156+
List<ProjectedUser> values = rxJava3UserRepository.findProjectedByLastname(carter.getLastname()) //
162157
.test() //
163-
.awaitTerminalEvent() //
158+
.await() //
164159
.assertValueCount(1) //
165-
.assertCompleted() //
160+
.assertComplete() //
166161
.assertNoErrors() //
167-
.getOnNextEvents();
162+
.values();
168163

169164
ProjectedUser projectedUser = values.get(0);
170165
assertThat(projectedUser.getFirstname()).isEqualTo(carter.getFirstname());
171166
}
172167

173168
@Test // DATACASS-335
174-
void observableRxJava1QueryMethodShouldWork() {
175-
176-
rxJava1UserRepository.findByLastname(boyd.getLastname()) //
177-
.test() //
178-
.awaitTerminalEvent() //
179-
.assertValue(boyd) //
180-
.assertNoErrors() //
181-
.assertCompleted();
182-
}
183-
184-
@Test // DATACASS-398
185-
void simpleRxJava2MethodsShouldWork() {
186-
187-
rxJava2UserRepository.existsById(dave.getId()) //
188-
.test()//
189-
.assertValue(true) //
190-
.assertNoErrors() //
191-
.assertComplete() //
192-
.awaitTerminalEvent();
193-
}
194-
195-
@Test // DATACASS-398
196-
void existsWithSingleRxJava2IdMethodsShouldWork() {
197-
198-
rxJava2UserRepository.existsById(io.reactivex.Single.just(dave.getId())).test() //
199-
.assertValue(true) //
200-
.assertNoErrors() //
201-
.assertComplete() //
202-
.awaitTerminalEvent();
203-
}
204-
205-
@Test // DATACASS-398
206-
void flowableRxJava2QueryMethodShouldWork() {
207-
208-
rxJava2UserRepository.findManyByLastname(dave.getLastname()) //
209-
.test() //
210-
.assertValueCount(2) //
211-
.assertNoErrors() //
212-
.assertComplete() //
213-
.awaitTerminalEvent();
214-
}
215-
216-
@Test // DATACASS-398
217-
void singleProjectedRxJava2QueryMethodShouldWork() {
218-
219-
rxJava2UserRepository.findProjectedByLastname(Maybe.just(carter.getLastname())) //
220-
.test() //
221-
.assertValue(actual -> {
222-
assertThat(actual.getFirstname()).isEqualTo(carter.getFirstname());
223-
return true;
224-
}) //
225-
.assertComplete() //
226-
.assertNoErrors() //
227-
.awaitTerminalEvent();
228-
}
229-
230-
@Test // DATACASS-398
231-
void observableProjectedRxJava2QueryMethodShouldWork() {
232-
233-
rxJava2UserRepository.findProjectedByLastname(Single.just(carter.getLastname())) //
234-
.test() //
235-
.assertValue(actual -> {
236-
assertThat(actual.getFirstname()).isEqualTo(carter.getFirstname());
237-
return true;
238-
}) //
239-
.assertComplete() //
240-
.assertNoErrors() //
241-
.awaitTerminalEvent();
242-
}
243-
244-
@Test // DATACASS-398
245-
void maybeRxJava2QueryMethodShouldWork() {
169+
void observableRxJava3QueryMethodShouldWork() throws InterruptedException {
246170

247-
rxJava2UserRepository.findByLastname(boyd.getLastname()) //
171+
rxJava3UserRepository.findByLastname(boyd.getLastname()) //
248172
.test() //
173+
.await() //
249174
.assertValue(boyd) //
250175
.assertNoErrors() //
251-
.assertComplete() //
252-
.awaitTerminalEvent();
176+
.assertComplete();
253177
}
254178

255179
@Test // DATACASS-335
256-
void mixedRepositoryShouldWork() {
180+
void mixedRepositoryShouldWork() throws InterruptedException {
257181

258182
reactiveRepository.findByLastname(boyd.getLastname()) //
259183
.test() //
260-
.awaitTerminalEvent() //
184+
.await() //
261185
.assertValue(boyd) //
262-
.assertCompleted() //
186+
.assertComplete() //
263187
.assertNoErrors();
264188
}
265189

@@ -280,29 +204,17 @@ interface UserRepostitory extends ReactiveCrudRepository<User, String> {
280204
}
281205

282206
@Repository
283-
interface RxJava1UserRepository extends org.springframework.data.repository.Repository<User, String> {
284-
285-
Observable<User> findManyByLastname(String lastname);
286-
287-
Single<User> findByLastname(String lastname);
288-
289-
Single<ProjectedUser> findProjectedByLastname(String lastname);
290-
291-
Single<Boolean> existsById(String id);
207+
interface RxJava3UserRepository extends org.springframework.data.repository.Repository<User, String> {
292208

293-
Single<Boolean> existsById(Single<String> id);
294-
}
295-
296-
@Repository
297-
interface RxJava2UserRepository extends RxJava2CrudRepository<User, String> {
209+
io.reactivex.rxjava3.core.Observable<User> findManyByLastname(String lastname);
298210

299-
Flowable<User> findManyByLastname(String lastname);
211+
io.reactivex.rxjava3.core.Single<User> findByLastname(String lastname);
300212

301-
Maybe<User> findByLastname(String lastname);
213+
io.reactivex.rxjava3.core.Single<ProjectedUser> findProjectedByLastname(String lastname);
302214

303-
io.reactivex.Single<ProjectedUser> findProjectedByLastname(Maybe<String> lastname);
215+
io.reactivex.rxjava3.core.Single<Boolean> existsById(String id);
304216

305-
io.reactivex.Observable<ProjectedUser> findProjectedByLastname(Single<String> lastname);
217+
io.reactivex.rxjava3.core.Single<Boolean> existsById(io.reactivex.rxjava3.core.Single<String> id);
306218
}
307219

308220
@Repository

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/config/ReactiveCassandraRepositoryConfigurationExtensionUnitTests.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.junit.jupiter.api.BeforeEach;
2323
import org.junit.jupiter.api.Test;
24+
2425
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2526
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
2627
import org.springframework.core.env.Environment;
@@ -34,7 +35,7 @@
3435
import org.springframework.data.repository.config.RepositoryConfiguration;
3536
import org.springframework.data.repository.config.RepositoryConfigurationSource;
3637
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
37-
import org.springframework.data.repository.reactive.RxJava2CrudRepository;
38+
import org.springframework.data.repository.reactive.RxJava3CrudRepository;
3839

3940
/**
4041
* Unit tests for {@link ReactiveCassandraRepositoryConfigurationExtension}.
@@ -107,7 +108,7 @@ private static class Config {
107108
@Table
108109
private static class Sample {}
109110

110-
interface SampleRepository extends RxJava2CrudRepository<Sample, Long> {}
111+
interface SampleRepository extends RxJava3CrudRepository<Sample, Long> {}
111112

112113
interface UnannotatedRepository extends ReactiveCrudRepository<Object, Long> {}
113114

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraParameterAccessorUnitTests.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@
1515
*/
1616
package org.springframework.data.cassandra.repository.query;
1717

18-
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.springframework.data.cassandra.core.mapping.CassandraType.Name;
20-
21-
import java.lang.reflect.Method;
22-
import java.time.LocalDateTime;
18+
import static org.assertj.core.api.Assertions.*;
19+
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
2320

21+
import io.reactivex.rxjava3.core.Single;
2422
import reactor.core.publisher.Flux;
2523
import reactor.core.publisher.Mono;
2624

25+
import java.lang.reflect.Method;
26+
import java.time.LocalDateTime;
27+
2728
import org.junit.jupiter.api.Test;
2829
import org.junit.jupiter.api.extension.ExtendWith;
2930
import org.mockito.Mock;
@@ -39,7 +40,6 @@
3940

4041
import com.datastax.oss.driver.api.core.type.DataTypes;
4142

42-
import rx.Single;
4343

4444
/**
4545
* Unit tests for {@link ReactiveCassandraParameterAccessor}.

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraQueryMethodUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717

1818
import static org.assertj.core.api.Assertions.*;
1919

20+
import io.reactivex.rxjava3.core.Single;
2021
import reactor.core.publisher.Flux;
2122
import reactor.core.publisher.Mono;
22-
import rx.Single;
2323

2424
import java.lang.reflect.Method;
2525

spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/ReactivePartTreeCassandraQueryUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
import static org.assertj.core.api.Assertions.*;
1919
import static org.mockito.Mockito.*;
2020

21+
import io.reactivex.rxjava3.core.Single;
2122
import reactor.core.publisher.Flux;
2223
import reactor.core.publisher.Mono;
23-
import rx.Single;
2424

2525
import java.lang.reflect.Method;
2626
import java.util.Arrays;

0 commit comments

Comments
 (0)