diff --git a/pom.xml b/pom.xml
index d4f75b1d5..e9c3fd822 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,13 +112,6 @@
-
- io.reactivex.rxjava2
- rxjava
- ${rxjava2}
- true
-
-
io.reactivex.rxjava3rxjava
diff --git a/src/main/java/org/springframework/data/repository/reactive/RxJava2CrudRepository.java b/src/main/java/org/springframework/data/repository/reactive/RxJava2CrudRepository.java
deleted file mode 100644
index 53247d48f..000000000
--- a/src/main/java/org/springframework/data/repository/reactive/RxJava2CrudRepository.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 2017-2021 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.repository.reactive;
-
-import io.reactivex.Completable;
-import io.reactivex.Flowable;
-import io.reactivex.Maybe;
-import io.reactivex.Single;
-
-import org.springframework.data.repository.NoRepositoryBean;
-import org.springframework.data.repository.Repository;
-
-/**
- * Interface for generic CRUD operations on a repository for a specific type. This repository follows reactive paradigms
- * and uses RxJava 2 types.
- *
- * @author Mark Paluch
- * @since 2.0
- * @see Maybe
- * @see Single
- * @see Flowable
- * @see Completable
- * @deprecated since 2.6, use {@link RxJava3CrudRepository RxJava 3} instead. To be removed with Spring Data 3.0.
- */
-@NoRepositoryBean
-@Deprecated
-public interface RxJava2CrudRepository extends Repository {
-
- /**
- * Saves a given entity. Use the returned instance for further operations as the save operation might have changed the
- * entity instance completely.
- *
- * @param entity must not be {@literal null}.
- * @return {@link Single} emitting the saved entity.
- * @throws IllegalArgumentException in case the given {@literal entity} is {@literal null}.
- */
- Single save(S entity);
-
- /**
- * Saves all given entities.
- *
- * @param entities must not be {@literal null}.
- * @return {@link Flowable} emitting the saved entities.
- * @throws IllegalArgumentException in case the given {@link Iterable entities} or one of its entities is
- * {@literal null}.
- */
- Flowable saveAll(Iterable entities);
-
- /**
- * Saves all given entities.
- *
- * @param entityStream must not be {@literal null}.
- * @return {@link Flowable} emitting the saved entities.
- * @throws IllegalArgumentException in case the given {@link Flowable entityStream} is {@literal null}.
- */
- Flowable saveAll(Flowable entityStream);
-
- /**
- * Retrieves an entity by its id.
- *
- * @param id must not be {@literal null}.
- * @return {@link Maybe} emitting the entity with the given id or {@link Maybe#empty()} if none found.
- * @throws IllegalArgumentException in case the given {@literal id} is {@literal null}.
- */
- Maybe findById(ID id);
-
- /**
- * Retrieves an entity by its id supplied by a {@link Single}.
- *
- * @param id must not be {@literal null}. Uses the first emitted element to perform the find-query.
- * @return {@link Maybe} emitting the entity with the given id or {@link Maybe#empty()} if none found.
- * @throws IllegalArgumentException in case the given {@link Single id} is {@literal null}.
- */
- Maybe findById(Single id);
-
- /**
- * Returns whether an entity with the given {@literal id} exists.
- *
- * @param id must not be {@literal null}.
- * @return {@link Single} emitting {@literal true} if an entity with the given id exists, {@literal false} otherwise.
- * @throws IllegalArgumentException in case the given {@literal id} is {@literal null}.
- */
- Single existsById(ID id);
-
- /**
- * Returns whether an entity with the given id, supplied by a {@link Single}, exists.
- *
- * @param id must not be {@literal null}.
- * @return {@link Single} emitting {@literal true} if an entity with the given id exists, {@literal false} otherwise.
- * @throws IllegalArgumentException in case the given {@link Single id} is {@literal null}.
- */
- Single existsById(Single id);
-
- /**
- * Returns all instances of the type.
- *
- * @return {@link Flowable} emitting all entities.
- */
- Flowable findAll();
-
- /**
- * Returns all instances of the type {@code T} with the given IDs.
- *
- * If some or all ids are not found, no entities are returned for these IDs.
- *
- * Note that the order of elements in the result is not guaranteed.
- *
- * @param ids must not be {@literal null} nor contain any {@literal null} values.
- * @return {@link Flowable} emitting the found entities. The size can be equal or less than the number of given
- * {@literal ids}.
- * @throws IllegalArgumentException in case the given {@link Iterable ids} or one of its items is {@literal null}.
- */
- Flowable findAllById(Iterable ids);
-
- /**
- * Returns all instances of the type {@code T} with the given IDs supplied by a {@link Flowable}.
- *
- * If some or all ids are not found, no entities are returned for these IDs.
- *
- * Note that the order of elements in the result is not guaranteed.
- *
- * @param idStream must not be {@literal null}.
- * @return {@link Flowable} emitting the found entities.
- * @throws IllegalArgumentException in case the given {@link Flowable idStream} is {@literal null}.
- */
- Flowable findAllById(Flowable idStream);
-
- /**
- * Returns the number of entities available.
- *
- * @return {@link Single} emitting the number of entities.
- */
- Single count();
-
- /**
- * Deletes the entity with the given id.
- *
- * @param id must not be {@literal null}.
- * @return {@link Completable} signaling when operation has completed.
- * @throws IllegalArgumentException in case the given {@literal id} is {@literal null}.
- */
- Completable deleteById(ID id);
-
- /**
- * Deletes a given entity.
- *
- * @param entity must not be {@literal null}.
- * @return {@link Completable} signaling when operation has completed.
- * @throws IllegalArgumentException in case the given entity is {@literal null}.
- */
- Completable delete(T entity);
-
- /**
- * Deletes all instances of the type {@code T} with the given IDs.
- *
- * @param ids must not be {@literal null}.
- * @return {@link Completable} signaling when operation has completed.
- * @throws IllegalArgumentException in case the given {@literal ids} or one of its elements is {@literal null}.
- * {@literal null}.
- * @since 2.5
- */
- Completable deleteAllById(Iterable extends ID> ids);
-
- /**
- * Deletes the given entities.
- *
- * @param entities must not be {@literal null}.
- * @return {@link Completable} signaling when operation has completed.
- * @throws IllegalArgumentException in case the given {@link Iterable entities} or one of its entities is
- * {@literal null}.
- */
- Completable deleteAll(Iterable extends T> entities);
-
- /**
- * Deletes the given entities supplied by a {@link Flowable}.
- *
- * @param entityStream must not be {@literal null}.
- * @return {@link Completable} signaling when operation has completed.
- * @throws IllegalArgumentException in case the given {@link Flowable entityStream} is {@literal null}.
- */
- Completable deleteAll(Flowable extends T> entityStream);
-
- /**
- * Deletes all entities managed by the repository.
- *
- * @return {@link Completable} signaling when operation has completed.
- */
- Completable deleteAll();
-}
diff --git a/src/main/java/org/springframework/data/repository/reactive/RxJava2SortingRepository.java b/src/main/java/org/springframework/data/repository/reactive/RxJava2SortingRepository.java
deleted file mode 100644
index 596c4de1f..000000000
--- a/src/main/java/org/springframework/data/repository/reactive/RxJava2SortingRepository.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2017-2021 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.repository.reactive;
-
-import io.reactivex.Flowable;
-
-import org.springframework.data.domain.Sort;
-import org.springframework.data.repository.NoRepositoryBean;
-
-/**
- * Extension of {@link RxJava2CrudRepository} to provide additional methods to retrieve entities using the sorting
- * abstraction.
- *
- * @author Mark Paluch
- * @since 2.0
- * @see Sort
- * @see Flowable
- * @see RxJava2CrudRepository
- * @deprecated since 2.6, use {@link RxJava3SortingRepository RxJava 3} instead. To be removed with Spring Data 3.0.
- */
-@NoRepositoryBean
-@Deprecated
-public interface RxJava2SortingRepository extends RxJava2CrudRepository {
-
- /**
- * Returns all entities sorted by the given options.
- *
- * @param sort must not be {@literal null}.
- * @return all entities sorted by the given options.
- */
- Flowable findAll(Sort sort);
-}
diff --git a/src/main/java/org/springframework/data/repository/reactive/RxJava3SortingRepository.java b/src/main/java/org/springframework/data/repository/reactive/RxJava3SortingRepository.java
index 6ed39c2a4..d2f069c67 100644
--- a/src/main/java/org/springframework/data/repository/reactive/RxJava3SortingRepository.java
+++ b/src/main/java/org/springframework/data/repository/reactive/RxJava3SortingRepository.java
@@ -28,7 +28,6 @@ import org.springframework.data.repository.NoRepositoryBean;
* @since 2.4
* @see Sort
* @see Flowable
- * @see RxJava2CrudRepository
*/
@NoRepositoryBean
public interface RxJava3SortingRepository extends RxJava3CrudRepository {
diff --git a/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java b/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java
index 0b51446ea..8de61e956 100644
--- a/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java
+++ b/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java
@@ -15,8 +15,6 @@
*/
package org.springframework.data.repository.util;
-import io.reactivex.Flowable;
-import io.reactivex.Maybe;
import kotlinx.coroutines.flow.Flow;
import kotlinx.coroutines.flow.FlowKt;
import kotlinx.coroutines.reactive.ReactiveFlowKt;
@@ -68,14 +66,6 @@ public abstract class ReactiveWrapperConverters {
static {
- if (ReactiveWrappers.isAvailable(ReactiveLibrary.RXJAVA2)) {
-
- REACTIVE_WRAPPERS.add(RxJava2SingleWrapper.INSTANCE);
- REACTIVE_WRAPPERS.add(RxJava2MaybeWrapper.INSTANCE);
- REACTIVE_WRAPPERS.add(RxJava2ObservableWrapper.INSTANCE);
- REACTIVE_WRAPPERS.add(RxJava2FlowableWrapper.INSTANCE);
- }
-
if (ReactiveWrappers.isAvailable(ReactiveLibrary.RXJAVA3)) {
REACTIVE_WRAPPERS.add(RxJava3SingleWrapper.INSTANCE);
@@ -331,82 +321,6 @@ public abstract class ReactiveWrapperConverters {
}
}
- // -------------------------------------------------------------------------
- // RxJava 2 converters
- // -------------------------------------------------------------------------
-
- /**
- * Wrapper for RxJava 2's {@link io.reactivex.Single}.
- */
- private enum RxJava2SingleWrapper implements ReactiveTypeWrapper> {
-
- INSTANCE;
-
- @Override
- public Class super io.reactivex.Single>> getWrapperClass() {
- return io.reactivex.Single.class;
- }
-
- @Override
- public io.reactivex.Single> map(Object wrapper, Function