diff --git a/src/main/java/io/reactivex/Completable.java b/src/main/java/io/reactivex/Completable.java index d26ef6faef..f676ab4786 100644 --- a/src/main/java/io/reactivex/Completable.java +++ b/src/main/java/io/reactivex/Completable.java @@ -986,12 +986,12 @@ public final Throwable blockingGet(long timeout, TimeUnit unit) { *
History: 2.0.4 - experimental * @return the new Completable instance - * @since 2.0.4 - experimental + * @since 2.1 */ @CheckReturnValue @SchedulerSupport(SchedulerSupport.NONE) - @Experimental public final Completable cache() { return RxJavaPlugins.onAssembly(new CompletableCache(this)); } @@ -1262,13 +1262,13 @@ public final Completable doAfterTerminate(final Action onAfterTerminate) { *
History: 2.0.1 - experimental
* @param onFinally the action called when this Completable terminates or gets cancelled
* @return the new Completable instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Completable doFinally(Action onFinally) {
ObjectHelper.requireNonNull(onFinally, "onFinally is null");
return RxJavaPlugins.onAssembly(new CompletableDoFinally(this, onFinally));
@@ -1598,10 +1598,10 @@ public final History: 2.0.5 - experimental
* @return the new Completable instance
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public final Completable hide() {
diff --git a/src/main/java/io/reactivex/Flowable.java b/src/main/java/io/reactivex/Flowable.java
index 60e4b64d4a..037c111832 100644
--- a/src/main/java/io/reactivex/Flowable.java
+++ b/src/main/java/io/reactivex/Flowable.java
@@ -7648,14 +7648,14 @@ public final Flowable History: 2.0.1 - experimental
* @param onFinally the action called when this Flowable terminates or gets cancelled
* @return the new Flowable instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@BackpressureSupport(BackpressureKind.PASS_THROUGH)
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Flowable History: 2.0.1 - experimental
* @param onAfterNext the Consumer that will be called after emitting an item from upstream to the downstream
* @return the new Flowable instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@BackpressureSupport(BackpressureKind.PASS_THROUGH)
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Flowable History: 2.0.5 - experimental
* @return the new ParallelFlowable instance
- * @since 2.0.5 - experimental
+ * @since 2.1 - beta
*/
@BackpressureSupport(BackpressureKind.FULL)
@SchedulerSupport(SchedulerSupport.NONE)
@CheckReturnValue
- @Experimental
+ @Beta
public final ParallelFlowable History: 2.0.5 - experimental
* @param parallelism the number of 'rails' to use
* @return the new ParallelFlowable instance
- * @since 2.0.5 - experimental
+ * @since 2.1 - beta
*/
@BackpressureSupport(BackpressureKind.FULL)
@SchedulerSupport(SchedulerSupport.NONE)
@CheckReturnValue
- @Experimental
+ @Beta
public final ParallelFlowable History: 2.0.5 - experimental
* @param parallelism the number of 'rails' to use
* @param prefetch the number of items each 'rail' should prefetch
* @return the new ParallelFlowable instance
- * @since 2.0.5 - experimental
+ * @since 2.1 - beta
*/
@BackpressureSupport(BackpressureKind.FULL)
@SchedulerSupport(SchedulerSupport.NONE)
@CheckReturnValue
- @Experimental
+ @Beta
public final ParallelFlowable History: 2.0.5 - experimental
* @param period
* the sampling rate
* @param unit
@@ -11800,12 +11804,11 @@ public final Flowable History: 2.0.5 - experimental
* @param period
* the sampling rate
* @param unit
@@ -11871,12 +11875,11 @@ public final Flowable History: 2.0.5 - experimental
* @param the element type of the sampler Publisher
* @param sampler
* the Publisher to use for sampling the source Publisher
@@ -11939,12 +11943,11 @@ public final Flowable
@@ -12997,12 +12969,13 @@ public final void subscribe(Subscriber super T> s) {
* History: 2.0.7 - experimental
* @param s the FlowableSubscriber that will consume signals from this Flowable
- * @since 2.0.7 - experimental
+ * @since 2.1 - beta
*/
@BackpressureSupport(BackpressureKind.SPECIAL)
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
+ @Beta
public final void subscribe(FlowableSubscriber super T> s) {
ObjectHelper.requireNonNull(s, "s is null");
try {
diff --git a/src/main/java/io/reactivex/FlowableSubscriber.java b/src/main/java/io/reactivex/FlowableSubscriber.java
index 8076c5c143..e483064610 100644
--- a/src/main/java/io/reactivex/FlowableSubscriber.java
+++ b/src/main/java/io/reactivex/FlowableSubscriber.java
@@ -20,10 +20,11 @@
* Represents a Reactive-Streams inspired Subscriber that is RxJava 2 only
* and weakens rules §1.3 and §3.9 of the specification for gaining performance.
*
+ * History: 2.0.7 - experimental
* @param History: 2.0.1 - experimental
* @param onAfterSuccess the Consumer that will be called after emitting an item from upstream to the downstream
* @return the new Maybe instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Maybe History: 2.0.1 - experimental
* @param onFinally the action called when this Maybe terminates or gets cancelled
* @return the new Maybe instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Maybe History: 2.0.2 - experimental
* @param History: 2.0.1 - experimental
* @param onAfterNext the Consumer that will be called after emitting an item from upstream to the downstream
* @return the new Observable instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Observable History: 2.0.1 - experimental
* @param onFinally the action called when this Observable terminates or gets cancelled
* @return the new Observable instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Observable History: 2.0.5 - experimental
* @param period
* the sampling rate
* @param unit
@@ -9857,11 +9858,10 @@ public final Observable History: 2.0.5 - experimental
* @param period
* the sampling rate
* @param unit
@@ -9920,11 +9921,10 @@ public final Observable History: 2.0.5 - experimental
* @param the element type of the sampler ObservableSource
* @param sampler
* the ObservableSource to use for sampling the source ObservableSource
@@ -9978,11 +9979,10 @@ public final Observable History: 2.0.1 - experimental
* @param History: 2.0.1 - experimental
* @param onAfterSuccess the Consumer that will be called after emitting an item from upstream to the downstream
* @return the new Single instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Single History: 2.0.6 - experimental
* @param onAfterTerminate
* an {@link Action} to be invoked when the source Single finishes
* @return a Single that emits the same items as the source Single, then invokes the
* {@link Action}
* @see ReactiveX operators documentation: Do
- * @since 2.0.6 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Single History: 2.0.1 - experimental
* @param onFinally the action called when this Single terminates or gets cancelled
* @return the new Single instance
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
public final Single History: 2.0.2 - experimental
+ * @since 2.1
*/
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.METHOD)
-@Experimental
public @interface CheckReturnValue {
}
diff --git a/src/main/java/io/reactivex/annotations/SchedulerSupport.java b/src/main/java/io/reactivex/annotations/SchedulerSupport.java
index acf89ad988..f2c7be4d68 100644
--- a/src/main/java/io/reactivex/annotations/SchedulerSupport.java
+++ b/src/main/java/io/reactivex/annotations/SchedulerSupport.java
@@ -24,6 +24,7 @@
* {@linkplain #NONE not using a scheduler} and {@linkplain #CUSTOM a manually-specified scheduler}.
* Libraries providing their own values should namespace them with their base package name followed
* by a colon ({@code :}) and then a human-readable name (e.g., {@code com.example:ui-thread}).
+ * @since 2.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Documented
diff --git a/src/main/java/io/reactivex/exceptions/OnErrorNotImplementedException.java b/src/main/java/io/reactivex/exceptions/OnErrorNotImplementedException.java
index 13488f79b4..e0e4d8e336 100644
--- a/src/main/java/io/reactivex/exceptions/OnErrorNotImplementedException.java
+++ b/src/main/java/io/reactivex/exceptions/OnErrorNotImplementedException.java
@@ -19,9 +19,10 @@
* Represents an exception used to signal to the {@code RxJavaPlugins.onError()} that a
* callback-based subscribe() method on a base reactive type didn't specify
* an onError handler.
- * @since 2.0.6 - experimental
+ * History: 2.0.6 - experimental
+ * @since 2.1 - beta
*/
-@Experimental
+@Beta
public final class OnErrorNotImplementedException extends RuntimeException {
private static final long serialVersionUID = -6298857009889503852L;
diff --git a/src/main/java/io/reactivex/exceptions/ProtocolViolationException.java b/src/main/java/io/reactivex/exceptions/ProtocolViolationException.java
index e5dda3c7df..00a3ee3bbc 100644
--- a/src/main/java/io/reactivex/exceptions/ProtocolViolationException.java
+++ b/src/main/java/io/reactivex/exceptions/ProtocolViolationException.java
@@ -13,14 +13,15 @@
package io.reactivex.exceptions;
-import io.reactivex.annotations.Experimental;
+import io.reactivex.annotations.Beta;
/**
* Explicitly named exception to indicate a Reactive-Streams
* protocol violation.
- * @since 2.0.6 - experimental
+ * History: 2.0.6 - experimental
+ * @since 2.1 - beta
*/
-@Experimental
+@Beta
public final class ProtocolViolationException extends IllegalStateException {
private static final long serialVersionUID = 1644750035281290266L;
diff --git a/src/main/java/io/reactivex/exceptions/UndeliverableException.java b/src/main/java/io/reactivex/exceptions/UndeliverableException.java
index 23bcd76743..030ba755ba 100644
--- a/src/main/java/io/reactivex/exceptions/UndeliverableException.java
+++ b/src/main/java/io/reactivex/exceptions/UndeliverableException.java
@@ -13,13 +13,14 @@
package io.reactivex.exceptions;
-import io.reactivex.annotations.Experimental;
+import io.reactivex.annotations.Beta;
/**
* Wrapper for Throwable errors that are sent to `RxJavaPlugins.onError`.
- * @since 2.0.6 - experimental
+ * History: 2.0.6 - experimental
+ * @since 2.1 - beta
*/
-@Experimental
+@Beta
public final class UndeliverableException extends IllegalStateException {
private static final long serialVersionUID = 1644750035281290266L;
diff --git a/src/main/java/io/reactivex/observers/BaseTestConsumer.java b/src/main/java/io/reactivex/observers/BaseTestConsumer.java
index 85c6492ea3..e1ee36d7b1 100644
--- a/src/main/java/io/reactivex/observers/BaseTestConsumer.java
+++ b/src/main/java/io/reactivex/observers/BaseTestConsumer.java
@@ -17,7 +17,6 @@
import java.util.concurrent.*;
import io.reactivex.Notification;
-import io.reactivex.annotations.Experimental;
import io.reactivex.disposables.Disposable;
import io.reactivex.exceptions.CompositeException;
import io.reactivex.functions.Predicate;
@@ -338,11 +337,11 @@ public final U assertValue(T value) {
* Assert that this TestObserver/TestSubscriber did not receive an onNext value which is equal to
* the given value with respect to Objects.equals.
*
- * @since 2.0.5 - experimental
+ * History: 2.0.5 - experimental
* @param value the value to expect not being received
- * @return this;
+ * @return this
+ * @since 2.1
*/
- @Experimental
@SuppressWarnings("unchecked")
public final U assertNever(T value) {
int s = values.size();
@@ -379,12 +378,12 @@ public final U assertValue(Predicate History: 2.0.5 - experimental
* @param valuePredicate the predicate that receives the onNext value
* and should return true for the expected value.
* @return this
+ * @since 2.1
*/
- @Experimental
@SuppressWarnings("unchecked")
public final U assertNever(Predicate super T> valuePredicate) {
int s = values.size();
@@ -782,12 +781,12 @@ public final U assertEmpty() {
/**
* Set the tag displayed along with an assertion failure's
* other state information.
+ * History: 2.0.7 - experimental
* @param tag the string to display (null won't print any tag)
* @return this
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
@SuppressWarnings("unchecked")
- @Experimental
public final U withTag(CharSequence tag) {
this.tag = tag;
return (U)this;
@@ -796,9 +795,9 @@ public final U withTag(CharSequence tag) {
/**
* Enumeration of default wait strategies when waiting for a specific number of
* items in {@link BaseTestConsumer#awaitCount(int, Runnable)}.
- * @since 2.0.7 - experimental
+ * History: 2.0.7 - experimental
+ * @since 2.1
*/
- @Experimental
public enum TestWaitStrategy implements Runnable {
/** The wait loop will spin as fast as possible. */
SPIN {
@@ -861,12 +860,12 @@ static void sleep(int millis) {
* Await until the TestObserver/TestSubscriber receives the given
* number of items or terminates by sleeping 10 milliseconds at a time
* up to 5000 milliseconds of timeout.
+ * History: 2.0.7 - experimental
* @param atLeast the number of items expected at least
* @return this
* @see #awaitCount(int, Runnable, long)
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
- @Experimental
public final U awaitCount(int atLeast) {
return awaitCount(atLeast, TestWaitStrategy.SLEEP_10MS, 5000);
}
@@ -875,6 +874,7 @@ public final U awaitCount(int atLeast) {
* Await until the TestObserver/TestSubscriber receives the given
* number of items or terminates by waiting according to the wait
* strategy and up to 5000 milliseconds of timeout.
+ * History: 2.0.7 - experimental
* @param atLeast the number of items expected at least
* @param waitStrategy a Runnable called when the current received count
* hasn't reached the expected value and there was
@@ -882,9 +882,8 @@ public final U awaitCount(int atLeast) {
* for examples
* @return this
* @see #awaitCount(int, Runnable, long)
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
- @Experimental
public final U awaitCount(int atLeast, Runnable waitStrategy) {
return awaitCount(atLeast, waitStrategy, 5000);
}
@@ -892,6 +891,7 @@ public final U awaitCount(int atLeast, Runnable waitStrategy) {
/**
* Await until the TestObserver/TestSubscriber receives the given
* number of items or terminates.
+ * History: 2.0.7 - experimental
* @param atLeast the number of items expected at least
* @param waitStrategy a Runnable called when the current received count
* hasn't reached the expected value and there was
@@ -900,10 +900,9 @@ public final U awaitCount(int atLeast, Runnable waitStrategy) {
* @param timeoutMillis if positive, the await ends if the specified amount of
* time has passed no matter how many items were received
* @return this
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
@SuppressWarnings("unchecked")
- @Experimental
public final U awaitCount(int atLeast, Runnable waitStrategy, long timeoutMillis) {
long start = System.currentTimeMillis();
for (;;) {
@@ -925,24 +924,24 @@ public final U awaitCount(int atLeast, Runnable waitStrategy, long timeoutMillis
/**
* @return true if one of the timeout-based await methods has timed out.
+ * History: 2.0.7 - experimental
* @see #clearTimeout()
* @see #assertTimeout()
* @see #assertNoTimeout()
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
- @Experimental
public final boolean isTimeout() {
return timeout;
}
/**
* Clears the timeout flag set by the await methods when they timed out.
+ * History: 2.0.7 - experimental
* @return this
- * @since 2.0.7 - experimental
+ * @since 2.1
* @see #isTimeout()
*/
@SuppressWarnings("unchecked")
- @Experimental
public final U clearTimeout() {
timeout = false;
return (U)this;
@@ -950,11 +949,11 @@ public final U clearTimeout() {
/**
* Asserts that some awaitX method has timed out.
+ * History: 2.0.7 - experimental
* @return this
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
@SuppressWarnings("unchecked")
- @Experimental
public final U assertTimeout() {
if (!timeout) {
throw fail("No timeout?!");
@@ -965,11 +964,11 @@ public final U assertTimeout() {
/**
* Asserts that some awaitX method has not timed out.
+ * History: 2.0.7 - experimental
* @return this
- * @since 2.0.7 - experimental
+ * @since 2.1
*/
@SuppressWarnings("unchecked")
- @Experimental
public final U assertNoTimeout() {
if (timeout) {
throw fail("Timeout?!");
diff --git a/src/main/java/io/reactivex/parallel/ParallelFlowable.java b/src/main/java/io/reactivex/parallel/ParallelFlowable.java
index e42e2c78ad..b1f6d60322 100644
--- a/src/main/java/io/reactivex/parallel/ParallelFlowable.java
+++ b/src/main/java/io/reactivex/parallel/ParallelFlowable.java
@@ -34,10 +34,11 @@
* Use {@code runOn()} to introduce where each 'rail' should run on thread-vise.
* Use {@code sequential()} to merge the sources back into a single Flowable.
*
+ * History: 2.0.5 - experimental
* @param History: 2.0.5 - experimental
* @param enable enable or disable the feature
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
public static void setFailOnNonBlockingScheduler(boolean enable) {
if (lockdown) {
throw new IllegalStateException("Plugins can't be changed anymore");
@@ -176,10 +159,10 @@ public static void setFailOnNonBlockingScheduler(boolean enable) {
* Returns true if the blockingX operators fail
* with an IllegalStateException on a non-blocking scheduler
* such as computation or single.
+ * History: 2.0.5 - experimental
* @return true if the blockingX operators fail on a non-blocking scheduler
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
public static boolean isFailOnNonBlockingScheduler() {
return failNonBlockingScheduler;
}
@@ -1101,10 +1084,11 @@ public static Completable onAssembly(@NonNull Completable source) {
/**
* Sets the specific hook function.
+ * History: 2.0.6 - experimental
* @param handler the hook function to set, null allowed
- * @since 2.0.6 - experimental
+ * @since 2.1 - beta
*/
- @Experimental
+ @Beta
@SuppressWarnings("rawtypes")
public static void setOnParallelAssembly(@Nullable Function super ParallelFlowable, ? extends ParallelFlowable> handler) {
if (lockdown) {
@@ -1115,10 +1099,11 @@ public static void setOnParallelAssembly(@Nullable Function super ParallelFlow
/**
* Returns the current hook function.
+ * History: 2.0.6 - experimental
* @return the hook function, may be null
- * @since 2.0.6 - experimental
+ * @since 2.1 - beta
*/
- @Experimental
+ @Beta
@SuppressWarnings("rawtypes")
@Nullable
public static Function super ParallelFlowable, ? extends ParallelFlowable> getOnParallelAssembly() {
@@ -1127,12 +1112,13 @@ public static void setOnParallelAssembly(@Nullable Function super ParallelFlow
/**
* Calls the associated hook function.
+ * History: 2.0.6 - experimental
* @param History: 2.0.5 - experimental
* @return true if the blocking should be prevented
* @see #setFailOnNonBlockingScheduler(boolean)
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
public static boolean onBeforeBlocking() {
BooleanSupplier f = onBeforeBlocking;
if (f != null) {
@@ -1169,12 +1155,12 @@ public static boolean onBeforeBlocking() {
* Set the handler that is called when an operator attempts a blocking
* await; the handler should return true to prevent the blocking
* and to signal an IllegalStateException instead.
+ * History: 2.0.5 - experimental
* @param handler the handler to set, null resets to the default handler
* that always returns false
* @see #onBeforeBlocking()
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
public static void setOnBeforeBlocking(@Nullable BooleanSupplier handler) {
if (lockdown) {
throw new IllegalStateException("Plugins can't be changed anymore");
@@ -1185,10 +1171,10 @@ public static void setOnBeforeBlocking(@Nullable BooleanSupplier handler) {
/**
* Returns the current blocking handler or null if no custom handler
* is set.
+ * History: 2.0.5 - experimental
* @return the current blocking handler or null if not specified
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@Nullable
public static BooleanSupplier getOnBeforeBlocking() {
return onBeforeBlocking;
@@ -1197,12 +1183,12 @@ public static BooleanSupplier getOnBeforeBlocking() {
/**
* Create an instance of the default {@link Scheduler} used for {@link Schedulers#computation()}
* except using {@code threadFactory} for thread creation.
+ * History: 2.0.5 - experimental
* @param threadFactory thread factory to use for creating worker threads. Note that this takes precedence over any
* system properties for configuring new thread creation. Cannot be null.
* @return the created Scheduler instance
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@NonNull
public static Scheduler createComputationScheduler(@NonNull ThreadFactory threadFactory) {
return new ComputationScheduler(ObjectHelper.requireNonNull(threadFactory, "threadFactory is null"));
@@ -1211,12 +1197,12 @@ public static Scheduler createComputationScheduler(@NonNull ThreadFactory thread
/**
* Create an instance of the default {@link Scheduler} used for {@link Schedulers#io()}
* except using {@code threadFactory} for thread creation.
+ * History: 2.0.5 - experimental
* @param threadFactory thread factory to use for creating worker threads. Note that this takes precedence over any
* system properties for configuring new thread creation. Cannot be null.
* @return the created Scheduler instance
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@NonNull
public static Scheduler createIoScheduler(@NonNull ThreadFactory threadFactory) {
return new IoScheduler(ObjectHelper.requireNonNull(threadFactory, "threadFactory is null"));
@@ -1225,12 +1211,12 @@ public static Scheduler createIoScheduler(@NonNull ThreadFactory threadFactory)
/**
* Create an instance of the default {@link Scheduler} used for {@link Schedulers#newThread()}
* except using {@code threadFactory} for thread creation.
+ * History: 2.0.5 - experimental
* @param threadFactory thread factory to use for creating worker threads. Note that this takes precedence over any
* system properties for configuring new thread creation. Cannot be null.
* @return the created Scheduler instance
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@NonNull
public static Scheduler createNewThreadScheduler(@NonNull ThreadFactory threadFactory) {
return new NewThreadScheduler(ObjectHelper.requireNonNull(threadFactory, "threadFactory is null"));
@@ -1239,12 +1225,12 @@ public static Scheduler createNewThreadScheduler(@NonNull ThreadFactory threadFa
/**
* Create an instance of the default {@link Scheduler} used for {@link Schedulers#single()}
* except using {@code threadFactory} for thread creation.
+ * History: 2.0.5 - experimental
* @param threadFactory thread factory to use for creating worker threads. Note that this takes precedence over any
* system properties for configuring new thread creation. Cannot be null.
* @return the created Scheduler instance
- * @since 2.0.5 - experimental
+ * @since 2.1
*/
- @Experimental
@NonNull
public static Scheduler createSingleScheduler(@NonNull ThreadFactory threadFactory) {
return new SingleScheduler(ObjectHelper.requireNonNull(threadFactory, "threadFactory is null"));
diff --git a/src/main/java/io/reactivex/subjects/CompletableSubject.java b/src/main/java/io/reactivex/subjects/CompletableSubject.java
index 2855bd0681..dad98fc11d 100644
--- a/src/main/java/io/reactivex/subjects/CompletableSubject.java
+++ b/src/main/java/io/reactivex/subjects/CompletableSubject.java
@@ -29,9 +29,9 @@
*
* The CompletableSubject doesn't store the Disposables coming through onSubscribe but
* disposes them once the other onXXX methods were called (terminal state reached).
- * @since 2.0.5 - experimental
+ * History: 2.0.5 - experimental
+ * @since 2.1
*/
-@Experimental
public final class CompletableSubject extends Completable implements CompletableObserver {
final AtomicReference
* The MaybeSubject doesn't store the Disposables coming through onSubscribe but
* disposes them once the other onXXX methods were called (terminal state reached).
+ * History: 2.0.5 - experimental
* @param
* The SingleSubject doesn't store the Disposables coming through onSubscribe but
* disposes them once the other onXXX methods were called (terminal state reached).
+ * History: 2.0.5 - experimental
* @param History: 2.0.1 - experimental
* @param n the request amount
* @return this
- * @since 2.0.1 - experimental
+ * @since 2.1
*/
- @Experimental
public final TestSubscriber
- *
- * In addition, if rule §2.12 (onSubscribe must be called at most once) is violated,
- * the sequence is cancelled an onError(IllegalStateException) is emitted.
- *
- *
- * @return the new Flowable instance
- * @since 2.0.5 - experimental
- * @deprecated 2.0.7, will be removed in 2.1.0; by default, the Publisher interface is always strict
- */
- @BackpressureSupport(BackpressureKind.PASS_THROUGH)
- @SchedulerSupport(SchedulerSupport.NONE)
- @Experimental
- @CheckReturnValue
- @Deprecated
- public final FlowableOperator-fusion:
* Operator-fusion:
* a Scheduler and a Subscription
* @param combine the function that takes a two-level nested Flowable sequence of a Completable and returns
* the Completable that will be subscribed to and should trigger the execution of the scheduled Actions.
* @return the Scheduler with the customized execution behavior
+ * @since 2.1
*/
@SuppressWarnings("unchecked")
- @Experimental
@NonNull
public S when(@NonNull Function