Skip to content

Commit abff40f

Browse files
Backwards compatible deprecated rx.concurrency classes
These will exist for a few releases to allow people to migrate from rx.concurrency to rx.schedulers.
1 parent 019aa93 commit abff40f

File tree

10 files changed

+258
-0
lines changed

10 files changed

+258
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package rx.concurrency;
2+
3+
import java.util.concurrent.TimeUnit;
4+
5+
import rx.Scheduler;
6+
import rx.Subscription;
7+
import rx.util.functions.Func2;
8+
9+
/**
10+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
11+
*
12+
* @deprecated Use {@link rx.schedulers.CurrentThreadScheduler} instead. This will be removed before 1.0 release.
13+
*/
14+
@Deprecated
15+
public class CurrentThreadScheduler extends Scheduler {
16+
17+
private final static CurrentThreadScheduler INSTANCE = new CurrentThreadScheduler();
18+
19+
public static CurrentThreadScheduler getInstance() {
20+
return INSTANCE;
21+
}
22+
23+
private final rx.schedulers.CurrentThreadScheduler actual;
24+
25+
private CurrentThreadScheduler() {
26+
actual = rx.schedulers.CurrentThreadScheduler.getInstance();
27+
}
28+
29+
@Override
30+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action) {
31+
return actual.schedule(state, action);
32+
}
33+
34+
@Override
35+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long delayTime, TimeUnit unit) {
36+
return actual.schedule(state, action, delayTime, unit);
37+
}
38+
39+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package rx.concurrency;
2+
3+
import java.util.concurrent.Executor;
4+
import java.util.concurrent.ScheduledExecutorService;
5+
6+
/**
7+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
8+
*
9+
* @deprecated Use {@link rx.schedulers.ExecutorScheduler} instead. This will be removed before 1.0 release.
10+
*/
11+
@Deprecated
12+
public class ExecutorScheduler extends rx.schedulers.ExecutorScheduler {
13+
14+
@Deprecated
15+
public ExecutorScheduler(Executor executor) {
16+
super(executor);
17+
}
18+
19+
@Deprecated
20+
public ExecutorScheduler(ScheduledExecutorService executor) {
21+
super(executor);
22+
}
23+
24+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package rx.concurrency;
2+
3+
import java.util.concurrent.TimeUnit;
4+
5+
import rx.Scheduler;
6+
import rx.Subscription;
7+
import rx.util.functions.Func2;
8+
9+
/**
10+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
11+
*
12+
* @deprecated Use {@link rx.schedulers.ImmediateScheduler} instead. This will be removed before 1.0 release.
13+
*/
14+
@Deprecated
15+
public class ImmediateScheduler extends Scheduler {
16+
17+
private final static ImmediateScheduler INSTANCE = new ImmediateScheduler();
18+
19+
public static ImmediateScheduler getInstance() {
20+
return INSTANCE;
21+
}
22+
23+
private final rx.schedulers.ImmediateScheduler actual;
24+
25+
private ImmediateScheduler() {
26+
actual = rx.schedulers.ImmediateScheduler.getInstance();
27+
}
28+
29+
@Override
30+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action) {
31+
return actual.schedule(state, action);
32+
}
33+
34+
@Override
35+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long delayTime, TimeUnit unit) {
36+
return actual.schedule(state, action, delayTime, unit);
37+
}
38+
39+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package rx.concurrency;
2+
3+
import java.util.concurrent.TimeUnit;
4+
5+
import rx.Scheduler;
6+
import rx.Subscription;
7+
import rx.util.functions.Func2;
8+
9+
/**
10+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
11+
*
12+
* @deprecated Use {@link rx.schedulers.NewThreadScheduler} instead. This will be removed before 1.0 release.
13+
*/
14+
@Deprecated
15+
public class NewThreadScheduler extends Scheduler {
16+
17+
private final static NewThreadScheduler INSTANCE = new NewThreadScheduler();
18+
19+
public static NewThreadScheduler getInstance() {
20+
return INSTANCE;
21+
}
22+
23+
private final rx.schedulers.NewThreadScheduler actual;
24+
25+
private NewThreadScheduler() {
26+
actual = rx.schedulers.NewThreadScheduler.getInstance();
27+
}
28+
29+
@Override
30+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action) {
31+
return actual.schedule(state, action);
32+
}
33+
34+
@Override
35+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long delayTime, TimeUnit unit) {
36+
return actual.schedule(state, action, delayTime, unit);
37+
}
38+
39+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This package is deprecated and will be removed prior to a 1.0 release.
2+
3+
Use rx.schedulers.* instead of rx.concurrency.*
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package rx.concurrency;
2+
3+
import java.util.concurrent.Executor;
4+
import java.util.concurrent.ScheduledExecutorService;
5+
6+
import rx.Scheduler;
7+
8+
/**
9+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
10+
*
11+
* @deprecated Use {@link rx.schedulers.Schedulers} instead. This will be removed before 1.0 release.
12+
*/
13+
@Deprecated
14+
public class Schedulers {
15+
16+
/**
17+
* {@link Scheduler} that executes work immediately on the current thread.
18+
*
19+
* @return {@link ImmediateScheduler} instance
20+
*/
21+
@Deprecated
22+
public static Scheduler immediate() {
23+
return rx.schedulers.ImmediateScheduler.getInstance();
24+
}
25+
26+
/**
27+
* {@link Scheduler} that queues work on the current thread to be executed after the current work completes.
28+
*
29+
* @return {@link CurrentThreadScheduler} instance
30+
*/
31+
@Deprecated
32+
public static Scheduler currentThread() {
33+
return rx.schedulers.CurrentThreadScheduler.getInstance();
34+
}
35+
36+
/**
37+
* {@link Scheduler} that creates a new {@link Thread} for each unit of work.
38+
*
39+
* @return {@link NewThreadScheduler} instance
40+
*/
41+
@Deprecated
42+
public static Scheduler newThread() {
43+
return rx.schedulers.NewThreadScheduler.getInstance();
44+
}
45+
46+
/**
47+
* {@link Scheduler} that queues work on an {@link Executor}.
48+
* <p>
49+
* Note that this does not support scheduled actions with a delay.
50+
*
51+
* @return {@link ExecutorScheduler} instance
52+
*/
53+
@Deprecated
54+
public static Scheduler executor(Executor executor) {
55+
return new rx.schedulers.ExecutorScheduler(executor);
56+
}
57+
58+
/**
59+
* {@link Scheduler} that queues work on an {@link ScheduledExecutorService}.
60+
*
61+
* @return {@link ExecutorScheduler} instance
62+
*/
63+
@Deprecated
64+
public static Scheduler executor(ScheduledExecutorService executor) {
65+
return new rx.schedulers.ExecutorScheduler(executor);
66+
}
67+
68+
/**
69+
* {@link Scheduler} intended for computational work.
70+
* <p>
71+
* The implementation is backed by a {@link ScheduledExecutorService} thread-pool sized to the number of CPU cores.
72+
* <p>
73+
* This can be used for event-loops, processing callbacks and other computational work.
74+
* <p>
75+
* Do not perform IO-bound work on this scheduler. Use {@link #threadPoolForComputation()} instead.
76+
*
77+
* @return {@link ExecutorScheduler} for computation-bound work.
78+
*/
79+
@Deprecated
80+
public static Scheduler threadPoolForComputation() {
81+
return rx.schedulers.Schedulers.threadPoolForComputation();
82+
}
83+
84+
/**
85+
* {@link Scheduler} intended for IO-bound work.
86+
* <p>
87+
* The implementation is backed by an {@link Executor} thread-pool that will grow as needed.
88+
* <p>
89+
* This can be used for asynchronously performing blocking IO.
90+
* <p>
91+
* Do not perform computational work on this scheduler. Use {@link #threadPoolForComputation()} instead.
92+
*
93+
* @return {@link ExecutorScheduler} for IO-bound work.
94+
*/
95+
@Deprecated
96+
public static Scheduler threadPoolForIO() {
97+
return rx.schedulers.Schedulers.threadPoolForIO();
98+
}
99+
100+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package rx.concurrency;
2+
3+
/**
4+
* Deprecated. Package changed from rx.concurrency to rx.schedulers.
5+
*
6+
* @deprecated Use {@link rx.schedulers.TestScheduler} instead. This will be removed before 1.0 release.
7+
*/
8+
@Deprecated
9+
public class TestScheduler extends rx.schedulers.TestScheduler {
10+
11+
public TestScheduler() {
12+
}
13+
14+
}

0 commit comments

Comments
 (0)