Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
617 commits
Select commit Hold shift + click to select a range
7c9ab65
OperatorDistinctUntilChanged
akarnokd Apr 24, 2014
f58b9bc
OperatorFinallyDo
akarnokd Apr 24, 2014
e4cb23c
OperatorMergeMap
akarnokd Apr 24, 2014
bf976a2
OperatorToObservableFuture
zsxwing Apr 24, 2014
3904af5
Merge pull request #1065 from zsxwing/skip-last-timed
benjchristensen Apr 24, 2014
1de53a2
Merge pull request #1073 from akarnokd/OperatorBuffer
benjchristensen Apr 24, 2014
923ea73
Merge pull request #1074 from akarnokd/OperatorConcat
benjchristensen Apr 24, 2014
a3a7e8a
Merge branch 'OperatorCombineLatest' of github.com:akarnokd/RxJava in…
benjchristensen Apr 24, 2014
200b673
Merge branch 'OperatorDefaultIfEmpty' of github.com:akarnokd/RxJava i…
benjchristensen Apr 24, 2014
6b9367b
Merge branch 'OperatorDefer' of github.com:akarnokd/RxJava into merge…
benjchristensen Apr 24, 2014
d4fd741
Merge branch 'OperatorDematerialize' of github.com:akarnokd/RxJava in…
benjchristensen Apr 24, 2014
ec19864
Merge branch 'OperatorDistinct' of github.com:akarnokd/RxJava into me…
benjchristensen Apr 24, 2014
abdb3c6
Merge branch 'OperatorDistinctUntilChanged' of github.com:akarnokd/Rx…
benjchristensen Apr 24, 2014
04ae396
Merge branch 'OperatorFinallyDo' of github.com:akarnokd/RxJava into m…
benjchristensen Apr 24, 2014
9a6b88c
Merge branch 'OperatorMergeMap' of github.com:akarnokd/RxJava into me…
benjchristensen Apr 24, 2014
1b37230
Merge branch 'to-observable-future' of git://github.com/zsxwing/RxJav…
benjchristensen Apr 24, 2014
3ff868e
Method Signature Cleanup
benjchristensen Apr 24, 2014
2713bdb
Merge pull request #1089 from benjchristensen/merge-prs
benjchristensen Apr 24, 2014
6b6d214
Handle Thrown Errors with UnsafeSubscribe
benjchristensen Apr 25, 2014
3161910
Merge pull request #1091 from benjchristensen/unsafeSubscribe-error-h…
benjchristensen Apr 25, 2014
12723ef
Reconnecting ObservableExecutionHook.onCreate
benjchristensen Apr 25, 2014
7227482
Merge pull request #1092 from benjchristensen/ObservableExecutionHook…
benjchristensen Apr 25, 2014
5f17435
[Gradle Release Plugin] - pre tag commit: '0.18.1'.
Apr 25, 2014
cc85f0e
[Gradle Release Plugin] - new version commit: '0.18.2-SNAPSHOT'.
Apr 25, 2014
12e5512
0.18.1
benjchristensen Apr 25, 2014
95e0636
0.18.1
benjchristensen Apr 25, 2014
d726e5c
OperatorDebounce
akarnokd Apr 25, 2014
45d0eaf
Removed localTerminate as it is never observed as true at that point.
akarnokd Apr 25, 2014
f4955b0
OperatorGroupByUntil
akarnokd Apr 25, 2014
79c07ee
OperatorGroupJoin
akarnokd Apr 25, 2014
af02fd7
OperatorTimerAndSample
akarnokd Apr 25, 2014
96b64b1
OperatorToMultimap
zsxwing Apr 25, 2014
483662f
OperatorToMap
zsxwing Apr 25, 2014
3da9135
OperatorAsync
akarnokd Apr 25, 2014
943c544
Removed deprecated API
akarnokd Apr 25, 2014
cc1776d
OperatorJoin
Apr 25, 2014
96939a7
OperatorMergeDelayError
Apr 25, 2014
10956f3
Fix last test case.
Apr 25, 2014
91fbba8
OperatorMergeMaxConcurrent
Apr 25, 2014
18177ae
Fix ReplaySubject's double termination problem.
Apr 25, 2014
96f4b66
OperatorMulticastAndReplay
Apr 25, 2014
b3e7b7b
OperatorOnErrorResumeNextViaObservable
Apr 25, 2014
7484fc9
OperatorOnErrorReturn
Apr 25, 2014
af07b19
OperatorUsing
zsxwing Apr 25, 2014
56fde61
OperatorTimeInterval
zsxwing Apr 27, 2014
ed57dc5
OperatorThrottleFirst
zsxwing Apr 27, 2014
dda2351
OperatorTakeWhile
zsxwing Apr 27, 2014
cd04714
Operator OnExceptionResumeNextViaObservable
akarnokd Apr 28, 2014
cd0a844
Operator ParallelMerge
akarnokd Apr 28, 2014
fc7f077
OperatorRefCount
akarnokd Apr 28, 2014
7eb21ab
OperatorSequenceEqual
akarnokd Apr 28, 2014
e98cd16
OperatorSkipTimed
akarnokd Apr 28, 2014
825e4fb
OperatorSkipUntil
akarnokd Apr 28, 2014
71acd87
Add lift to rxscala
zsxwing Apr 28, 2014
59ebdb2
Add Operator conversion, tail and update liftExample2
zsxwing Apr 29, 2014
b7af5c9
Add unsubscribe
zsxwing Apr 29, 2014
26a4a1a
Operators of contrib-math
akarnokd Apr 29, 2014
1ea2cb9
Corrected LF
akarnokd Apr 29, 2014
bc202f4
Operator When
akarnokd Apr 29, 2014
b16727c
Fix for SerializedObserverTest
akarnokd Apr 29, 2014
6fe11aa
Conditional statements contribution to Operator
akarnokd Apr 29, 2014
d853038
Operator Switch
akarnokd Apr 29, 2014
1383d3d
Operator TakeTimed
akarnokd Apr 29, 2014
9d319bc
Update CompletenessTest
zsxwing Apr 29, 2014
99d0b0b
Merge branch 'OperatorGroupByUntil' of github.com:akarnokd/RxJava int…
benjchristensen Apr 29, 2014
4bea4f9
Merge branch 'to-multimap' of git://github.com/zsxwing/RxJava into me…
benjchristensen Apr 29, 2014
03eea96
Merge branch 'OperatorTimer' of github.com:akarnokd/RxJava into merge…
benjchristensen Apr 29, 2014
52f4005
Merge branch 'to-map' of git://github.com/zsxwing/RxJava into merge-prs
benjchristensen Apr 29, 2014
a97415c
Merge branch 'using' of git://github.com/zsxwing/RxJava into merge-prs
benjchristensen Apr 29, 2014
fe481d9
Merge branch 'OperatorAsync' of github.com:akarnokd/RxJava into merge…
benjchristensen Apr 29, 2014
a98ccb3
Merge branch 'OperatorJoin' of github.com:akarnokd/RxJava into merge-prs
benjchristensen Apr 29, 2014
fadae74
Merge branch 'OperatorGroupJoin' of github.com:akarnokd/RxJava into m…
benjchristensen Apr 29, 2014
53a798e
Merge branch 'OperatorMergeDelayError' of github.com:akarnokd/RxJava …
benjchristensen Apr 29, 2014
4e4738c
Merge branch 'OperatorMergeMaxConcurrent' of github.com:akarnokd/RxJa…
benjchristensen Apr 29, 2014
6274195
Merge branch 'ReplaySubjectDoubleCompletionFix' of github.com:akarnok…
benjchristensen Apr 29, 2014
9ce042e
Merge branch 'OperatorMulticast' of github.com:akarnokd/RxJava into m…
benjchristensen Apr 29, 2014
ff14fcc
Merge branch 'OperatorOnErrorResumeNextViaObservable' of github.com:a…
benjchristensen Apr 29, 2014
c7ff93b
Merge branch 'OperatorOnErrorReturn' of github.com:akarnokd/RxJava in…
benjchristensen Apr 29, 2014
4495f14
Merge branch 'time-interval' of git://github.com/zsxwing/RxJava into …
benjchristensen Apr 29, 2014
30911bd
Merge branch 'throttle-first' of git://github.com/zsxwing/RxJava into…
benjchristensen Apr 29, 2014
d8256ef
Merge branch 'take-while' of git://github.com/zsxwing/RxJava into mer…
benjchristensen Apr 29, 2014
d868724
Merge branch 'OperatorOnExceptionResumeNextViaObservable' of github.c…
benjchristensen Apr 29, 2014
42b7e4b
Merge branch 'OperatorParallelMerge' of github.com:akarnokd/RxJava in…
benjchristensen Apr 29, 2014
a4f2bab
Merge branch 'OperatorRefCount' of github.com:akarnokd/RxJava into me…
benjchristensen Apr 29, 2014
1443aec
Merge branch 'OperatorSequenceEquals' of github.com:akarnokd/RxJava i…
benjchristensen Apr 29, 2014
626980a
Merge branch 'OperatorSkipTimed' of github.com:akarnokd/RxJava into m…
benjchristensen Apr 29, 2014
dfd0642
Merge branch 'OperatorSkipUntil' of github.com:akarnokd/RxJava into m…
benjchristensen Apr 29, 2014
22bc999
Merge branch 'OperatorContribMath' of github.com:akarnokd/RxJava into…
benjchristensen Apr 30, 2014
93bcfc4
Merge branch 'OperatorContribJoin' of github.com:akarnokd/RxJava into…
benjchristensen Apr 30, 2014
fa13aa5
Merge branch 'SerializedObserverTestFix' of github.com:akarnokd/RxJav…
benjchristensen Apr 30, 2014
ed66751
Merge branch 'OperatorComputationExpr' of github.com:akarnokd/RxJava …
benjchristensen Apr 30, 2014
a100bc6
Merge branch 'OperatorSwitch' of github.com:akarnokd/RxJava into merg…
benjchristensen Apr 30, 2014
b604a32
Merge branch 'OperatorTakeTimed429' of github.com:akarnokd/RxJava int…
benjchristensen Apr 30, 2014
4fc1b92
Merge pull request #1132 from benjchristensen/merge-prs
benjchristensen Apr 30, 2014
4459417
collapse imports
benjchristensen Apr 30, 2014
d62ddb7
Merge pull request #1133 from benjchristensen/imports
benjchristensen Apr 30, 2014
49075d6
OperatorTakeUntil
zsxwing Apr 30, 2014
cd717d6
OperatorTakeLast
zsxwing Apr 30, 2014
947e5f8
Fixes to the operators.
akarnokd Apr 30, 2014
21578d5
Operator Window and other changes
akarnokd Apr 30, 2014
aac1903
Update the signature of lift
zsxwing May 1, 2014
129e531
Use NotificationLite
zsxwing Apr 30, 2014
7cb90f1
Update 'contains' signature to 'contains(Object)'
zsxwing May 3, 2014
b1effc7
Modified BufferUntilSubscriber to onError for any subscriber but the …
akarnokd May 5, 2014
5b728bf
Operator Delay rebase & fixes
akarnokd May 5, 2014
08dfede
Merge pull request #1124 from zsxwing/scala-lift
benjchristensen May 5, 2014
eebcd08
Merge pull request #1134 from zsxwing/take-last
benjchristensen May 5, 2014
312cbf1
Merge pull request #1135 from zsxwing/take-until
benjchristensen May 5, 2014
1af3674
Merge pull request #1137 from akarnokd/OperatorFixes430
benjchristensen May 5, 2014
b794705
Merge pull request #1138 from akarnokd/OperatorWindow430
benjchristensen May 5, 2014
63576cc
Merge pull request #1142 from zsxwing/contains
benjchristensen May 5, 2014
22f0f20
Merge branch 'OperatorDelay505' of github.com:akarnokd/RxJava into me…
benjchristensen May 5, 2014
3f4ab76
Merge pull request #1148 from benjchristensen/merge-delay
benjchristensen May 5, 2014
cdc0c2f
Make final
benjchristensen May 5, 2014
42fa5aa
Fix ReplaySubject termination race
benjchristensen May 5, 2014
4f55f95
ReplaySubject testRaceForTerminalState()
benjchristensen May 5, 2014
f0404e9
Merge pull request #1150 from benjchristensen/replay-fix
benjchristensen May 5, 2014
8273d60
[Gradle Release Plugin] - pre tag commit: '0.18.2'.
May 5, 2014
43fd6ee
[Gradle Release Plugin] - new version commit: '0.18.3-SNAPSHOT'.
May 5, 2014
29f564a
Version 0.18.2
benjchristensen May 5, 2014
baf568d
Add 'dropUntil' to RxScala
zsxwing May 3, 2014
bb78809
Add 'contains' to RxScala
zsxwing May 3, 2014
d5074f4
Add 'repeat' to RxScala
zsxwing May 3, 2014
1b4e2a8
Add 'doOnTerminate' to RxScala
zsxwing May 4, 2014
7e1c2d4
Add 'startWith' to RxScala
zsxwing May 6, 2014
6dcc9d3
Add 'publish' variants to RxScala
zsxwing May 6, 2014
8fa3a37
Scheduler correctness improvements.
akarnokd May 6, 2014
024a427
Change '(() => Subscription, Observable[R])' to 'ConnectableObservabl…
zsxwing May 6, 2014
bcf34f7
Add 'multicast' variants to RxScala
zsxwing May 6, 2014
a0ad6c9
Remove 'Observable.apply(Int)'
zsxwing May 6, 2014
3609e67
Add 'replay' variants to RxScala
zsxwing May 6, 2014
b4b6762
Removed use of deprecated API from tests & operators, fixed year in h…
akarnokd May 6, 2014
c857ba3
Removed unused interface
akarnokd May 6, 2014
8397f74
Replace '+' with '::'
zsxwing May 6, 2014
67cae34
fix to remove drift from schedulePeriodic
May 6, 2014
012af02
Fix defer for Java 8 type-inference
benjchristensen May 6, 2014
8014376
Merge pull request #1163 from benjchristensen/defer-generics
benjchristensen May 6, 2014
3764051
Merge pull request #1161 from akarnokd/RemoveOnSubscribeFuncRefs
benjchristensen May 6, 2014
dded83c
Merge pull request #1162 from kirkshoop/stableperiodic
benjchristensen May 6, 2014
38a87f5
Merge pull request #1159 from zsxwing/rxscala-improvement
benjchristensen May 6, 2014
f6af2dc
JMH Perf Tests for Schedulers.computation
benjchristensen May 6, 2014
a1e0352
Merge pull request #1164 from benjchristensen/scheduler-jmh-perf-tests
benjchristensen May 6, 2014
0302369
Merge pull request #1158 from akarnokd/SchedulerFixes0506
benjchristensen May 6, 2014
d81620e
Revert #1163 until decision made
benjchristensen May 6, 2014
2e0e537
[Gradle Release Plugin] - pre tag commit: '0.18.3'.
May 7, 2014
5c7de06
[Gradle Release Plugin] - new version commit: '0.18.4-SNAPSHOT'.
May 7, 2014
47a7744
Update according to review in issue #1159
zsxwing May 7, 2014
7fd0de8
Merge branch 'master' into replay-multicast
zsxwing May 7, 2014
3bf7c4d
Remove () and update CompletenessTest
zsxwing May 7, 2014
be0a6be
Remove 'startWith', add '+:' and ':+'
zsxwing May 7, 2014
9f916a2
Update 'startWith' info in CompletenessTest
zsxwing May 7, 2014
f00cba9
Merge pull request #1165 from zsxwing/review-issue1159
benjchristensen May 8, 2014
7253be3
Merge branch 'master' into replay-multicast
zsxwing May 8, 2014
e6ae50b
Change to batch dequeue.
akarnokd May 8, 2014
3e58d90
Fixed synchronous ConnectableObservable.connect problem
May 8, 2014
f15a6dd
GroubByUntil to use BufferUntilSubscriber
akarnokd May 9, 2014
716de90
Add facilities for creating Observables from JavaFX events and Observ…
amazari May 9, 2014
91d54a7
Switch to direct accept and no instanceof
May 9, 2014
cbd09d7
Merge pull request #1183 from akarnokd/NotificationLitePerf
benjchristensen May 9, 2014
461730f
Merge pull request #1177 from akarnokd/GroupByUntilTimeGap
benjchristensen May 9, 2014
cb60dd4
Version 0.18.3
benjchristensen May 9, 2014
4bb777c
BehaviorSubject subscription timegap fix
akarnokd May 9, 2014
265090c
BehaviorSubject subscription timegap fix 2
akarnokd May 9, 2014
5454879
Going lite
akarnokd May 9, 2014
26cd9dd
Some performance improvements
akarnokd May 9, 2014
d27b8c7
PublishSubject to match BehaviorSubject
May 9, 2014
1b88781
Unified the Subject management.
May 9, 2014
6c336e0
Merge pull request #1182 from amazari/rxjava-javafx
benjchristensen May 9, 2014
50b618e
Add note to javadocs about ConnectableObservables requiring connect()…
DavidMGross May 10, 2014
8cf821a
Fix issue #1173
zsxwing May 9, 2014
a20bed8
Fix the bug that the inner Subscriber can not be unsubscribed and eli…
zsxwing May 10, 2014
423395b
Update CompletenessTest.scala
zsxwing May 11, 2014
c948a26
Fix issue #1187
zsxwing May 12, 2014
9b9e5d0
Update the signature of "schedule" methods
zsxwing May 12, 2014
d06e420
Fix attempt #1
akarnokd May 12, 2014
7607f8f
Add sequenceEqual to RxScala
zsxwing May 12, 2014
8ebb962
Add take variants to RxScala
zsxwing May 12, 2014
31ceb09
Add takeRight(takeLast) variants to RxScala
zsxwing May 12, 2014
9e6e890
Add timeInterval to RxScala
zsxwing May 12, 2014
261dc38
Negative schedule time now indicates immediate execution.
May 12, 2014
a26b21d
Fix issue #1196 and some docs issues
zsxwing May 13, 2014
8dad2ec
Comment explaining non-positive delay values
akarnokd May 13, 2014
0f19120
Update more mappings to CompletenessTest
zsxwing May 13, 2014
ec2f6d6
Add delay variants to RxScala
zsxwing May 13, 2014
44efb27
Update range comments
zsxwing May 14, 2014
354c959
Add using to RxScala
zsxwing May 14, 2014
f4640ec
Add buffer variants to RxScala
zsxwing May 14, 2014
d9c086f
Adding marble diagrams to StringObservable operator javadocs
DavidMGross May 14, 2014
7104db2
EDGE-1369 document runAsync/StoppableObservable
DavidMGross May 15, 2014
8faa8cb
Might help with questions like in the email thread "javadoc for api-s…
DavidMGross May 15, 2014
e53b1cd
Merge pull request #1188 from zsxwing/issue1187
benjchristensen May 16, 2014
cdad283
Comment out javafx until build is fixed
benjchristensen May 16, 2014
570a8f9
Merge pull request #1175 from akarnokd/ConnectableObservableSynchrono…
benjchristensen May 16, 2014
9b205ee
Merge pull request #1172 from akarnokd/ObserveOnBatchDequeue
benjchristensen May 16, 2014
e5b75eb
Merge pull request #1191 from akarnokd/OperatorPivotTestFix
benjchristensen May 16, 2014
d64b3a1
Merge pull request #1195 from akarnokd/SwingSchedulerNegativeFix
benjchristensen May 16, 2014
0896f70
use LinkedList to buffer the sequence’s items
mttkay May 17, 2014
720619c
Merge branch 'master' into rxscala-more
zsxwing May 18, 2014
f85219a
Update CompletenessTest.scala for new operators
zsxwing May 18, 2014
2e46c82
Eliminate compiler warnings
zsxwing May 18, 2014
039378f
Fix the initialization order
zsxwing May 19, 2014
0cff93d
Revert createExampleBad and import scala.concurrent.duration.MILLISEC…
zsxwing May 19, 2014
62266af
Merge pull request #1178 from zsxwing/issue1173
benjchristensen May 19, 2014
044c13c
Exposing PublishSubject
hmrm May 19, 2014
c965815
Merge branch 'master' into rxscala-more
zsxwing May 20, 2014
27d1194
Merge pull request #1210 from zsxwing/rxscala-more
benjchristensen May 20, 2014
5984e95
Merge pull request #1216 from hmrm/patch-1
benjchristensen May 20, 2014
3f03935
Merge pull request #1208 from mttkay/tolist-uses-linked-list-buffer
benjchristensen May 20, 2014
af40052
Merge pull request #1185 from akarnokd/BehaviorSubjectTimeGapFix2
benjchristensen May 20, 2014
7d0105d
Merge branch 'master' into replay-multicast
zsxwing May 20, 2014
d475bab
Javadoc: Inner -> Worker
benjchristensen May 20, 2014
07d6583
Re-enable testStaggeredCompletion
benjchristensen May 20, 2014
c7ce158
ReplaySubject enhancement with time and/or size bounds
akarnokd May 20, 2014
5996b9d
Implement shorter toBlocking as shorter alias for toBlockingObservable.
daschl May 20, 2014
3c90565
Fix the bug that using mutable function in 'zipWithIndex'
zsxwing May 20, 2014
1b30485
make 'zip(that, selector)' public and rename to 'zipWith'
zsxwing May 20, 2014
b56f0a5
Merge pull request #1226 from zsxwing/zip
benjchristensen May 20, 2014
3528e6a
Merge pull request #1224 from daschl/toblocking
benjchristensen May 20, 2014
eab66ba
Merge pull request #1223 from akarnokd/BoundedReplaySubject520
benjchristensen May 20, 2014
1c76782
Merge pull request #1160 from zsxwing/replay-multicast
benjchristensen May 20, 2014
4d05c9c
Git Reformats This File
benjchristensen May 20, 2014
5ecf69a
Merge pull request #1228 from benjchristensen/fix-formatting
benjchristensen May 20, 2014
7039d62
Remove Ambiguous Subscribe Overloads with Scheduler
benjchristensen May 20, 2014
3d77dc9
Merge pull request #1229 from benjchristensen/1116-ambiguous-overloads
benjchristensen May 20, 2014
b42b4ac
Operator Alias: Share
benjchristensen May 20, 2014
1e07ccc
Merge pull request #1231 from benjchristensen/682-share
benjchristensen May 20, 2014
06ba752
Limit alias to Take
benjchristensen May 20, 2014
48a845c
ForEach aliases to Subscribe to match Java 8 Convention
benjchristensen May 20, 2014
e50aa5d
Merge pull request #1232 from benjchristensen/678-Java8-names
benjchristensen May 20, 2014
93ed358
Deprecate toBlockingObservable in favor of toBlocking
benjchristensen May 20, 2014
17529d0
(#1230) javadocs for serialize()
DavidMGross May 20, 2014
5cd3776
Merge pull request #1233 from benjchristensen/deprecate-toBlockingObs…
benjchristensen May 20, 2014
f2e7732
Merge branch 'master' of https://github.com/Netflix/RxJava into docs
DavidMGross May 20, 2014
6b60a4a
adding @since javadoc annotation to new methods
DavidMGross May 20, 2014
373532b
Merge branch 'master' of https://github.com/Netflix/RxJava into docs
DavidMGross May 20, 2014
566e892
Adding another @since annotation to the toBlocking() javadocs
DavidMGross May 20, 2014
7a1ad18
Switch to AtomicReferenceFieldUpdater.
akarnokd May 21, 2014
3c13498
Changed to field updater
akarnokd May 21, 2014
784f676
Update docs for "apply" and add an example
zsxwing May 21, 2014
62e68d5
Merge pull request #1237 from akarnokd/SafeSubscriberMemory
benjchristensen May 21, 2014
4ae5333
Merge pull request #1236 from akarnokd/CompositeSubscriptionMemory521
benjchristensen May 21, 2014
310ceca
JMH Tests for Simple Use Cases
benjchristensen May 22, 2014
0db09c3
Remove Subscription Wrapper from Observable.subscribe
benjchristensen May 22, 2014
a2f4782
Merge pull request #1243 from benjchristensen/perf
benjchristensen May 22, 2014
2f3c0d5
Observable.from(T) using Observable.just(T)
benjchristensen May 22, 2014
0efda07
Merge pull request #1244 from benjchristensen/from-just
benjchristensen May 22, 2014
ba6bf7c
Update README.md to new constructors
zsxwing May 22, 2014
6989434
Fixed testConcurrentOnNextFailsValidation
May 22, 2014
d9df3bd
Merge pull request #1239 from zsxwing/apply-scaladoc-example
benjchristensen May 23, 2014
4f6705b
Merge pull request #1248 from akarnokd/SchedulerTestConcurrentFix
benjchristensen May 23, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Thumbs.db
# Gradle Files #
################
.gradle
.gradletasknamecache
.m2

# Build output directies
Expand All @@ -62,6 +63,9 @@ bin/

# NetBeans specific files/directories
.nbattrs
/.nb-gradle/profiles/private/
.nb-gradle-properties

# Scala build
*.cache
/.nb-gradle/private/
936 changes: 936 additions & 0 deletions CHANGES.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# RxJava: Functional Reactive Programming on the JVM
# RxJava: Reactive Extensions for the JVM

This library is a Java implementation of <a href="https://rx.codeplex.com">Rx Observables</a>.

Expand Down
110 changes: 83 additions & 27 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,80 +9,136 @@ apply from: file('gradle/release.gradle')
buildscript {
repositories {
mavenLocal()
mavenCentral() // maven { url 'http://jcenter.bintray.com' }
mavenCentral()
jcenter()
}
apply from: file('gradle/buildscript.gradle'), to: buildscript

apply from: file('gradle/buildscript.gradle'), to: buildscript
}

allprojects {
apply plugin: 'eclipse'
apply plugin: 'idea'
repositories {
mavenLocal()
mavenCentral() // maven { url: 'http://jcenter.bintray.com' }
mavenCentral()
}
}

subprojects {
apply plugin: 'java'
apply plugin: 'shadow'
group = "com.netflix.rxjava"

// make 'examples' use the same classpath
configurations {
examplesCompile.extendsFrom compile
examplesRuntime.extendsFrom runtime
perfCompile.extendsFrom compile
perfRuntime.extendsFrom runtime
perfCompile.extendsFrom compile
perfRuntime.extendsFrom runtime
}


tasks.withType(Javadoc).each {
it.classpath = sourceSets.main.compileClasspath
}

sourceSets {
//include /src/examples folder
sourceSets {
examples
//include /src/perf folder
perf {
java {
srcDir 'src/perf/java'
compileClasspath += main.output
runtimeClasspath += main.output
}
compileClasspath += sourceSets.main.output
}
}

tasks.build {
//include 'examples' in build task
dependsOn(examplesClasses)
dependsOn(perfClasses)
}

task perfJar(type: Jar, dependsOn: perfClasses) {
from sourceSets.perf.output + sourceSets.main.output
}

dependencies {
perfCompile 'org.openjdk.jmh:jmh-core:0.2'
perfCompile 'org.openjdk.jmh:jmh-core:0.5.3'
perfCompile 'org.openjdk.jmh:jmh-generator-annprocess:0.5.3'
//perfCompile project
}

tasks.build {
//include 'examples' in build task
dependsOn(examplesClasses)
//include 'perf' in build task
// dependsOn(perfClasses) //-> Not working so commented out
artifacts {
perfRuntime perfJar
}

eclipse {
classpath {
// include 'provided' dependencies on the classpath
plusConfigurations += configurations.provided
classpath {
plusConfigurations += configurations.perfCompile

downloadSources = true
downloadJavadoc = true
}
}

idea {
module {
// include 'provided' dependencies on the classpath
scopes.PROVIDED.plus += configurations.provided
// TODO not sure what to add it to
//scopes.PROVIDED.plus += configurations.perfCompile
scopes.PROVIDED.plus += configurations.perfCompile
scopes.PROVIDED.minus += configurations.compile
}
}

/**
* By default: Run without arguments this will execute all benchmarks that are found (can take a long time).
*
* Optionally pass arguments for custom execution. Example:
*
* ../gradlew benchmarks '-Pjmh=-f 1 -tu ns -bm avgt -wi 5 -i 5 -r 1 .*OperatorSerializePerf.*'
*
* To see all options:
*
* ../gradlew benchmarks '-Pjmh=-h'
*/
task benchmarks(type: JavaExec) {
main = 'org.openjdk.jmh.Main'
classpath = sourceSets.perf.runtimeClasspath + sourceSets.main.output
maxHeapSize = "512m"

if (project.hasProperty('jmh')) {
args(jmh.split(' '))
} else {
//args '-h' // help output
args '-f' // fork
args '1'
args '-tu' // time unit
args 'ns'
args '-bm' // benchmark mode
args 'avgt'
args '-wi' // warmup iterations
args '5'
args '-i' // test iterations
args '5'
args '-r' // time per execution in seconds
args '5'
//args '-prof' // profilers
//args 'HS_GC' // HotSpot (tm) memory manager (GC) profiling via implementation-specific MBeans
//args 'HS_RT' // HotSpot (tm) runtime profiling via implementation-specific MBeans
//args 'HS_THR' // HotSpot (tm) threading subsystem via implementation-specific MBeans
//args 'HS_COMP' // HotSpot (tm) JIT compiler profiling via implementation-specific MBeans
//args 'HS_CL' // HotSpot (tm) classloader profiling via implementation-specific MBeans
//args 'STACK' // Simple and naive Java stack profiler
args '.*OperatorSerializePerf.*' // for running only a specific test
}
}

shadow {
classifier = "benchmarks"
includeDependenciesFor = ["runtime", "perfRuntime"]

transformer(com.github.jengelman.gradle.plugins.shadow.transformers.ManifestResourceTransformer) {
mainClass = "org.openjdk.jmh.Main"
}
}

shadowJar.dependsOn perfJar
}

project(':rxjava-core') {
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=0.17.0-RC4-SNAPSHOT
version=0.18.4-SNAPSHOT
6 changes: 6 additions & 0 deletions gradle/buildscript.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@
repositories {
// Repo in addition to maven central
repositories { maven { url 'http://dl.bintray.com/content/netflixoss/external-gradle-plugins/' } } // For gradle-release
maven {
//FIXME: waiting for https://github.com/johnrengelman/shadow/pull/38 to merge
name 'Shadow'
url 'http://dl.bintray.com/content/gvsmirnov/gradle-plugins'
}
}
dependencies {
classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.6.1'
classpath 'com.mapvine:gradle-cobertura-plugin:0.1'
classpath 'gradle-release:gradle-release:1.1.5'
classpath 'org.ajoberstar:gradle-git:0.5.0'
classpath 'com.github.jengelman.gradle.plugins:shadow:0.8.1'
}
133 changes: 97 additions & 36 deletions language-adaptors/rxjava-clojure/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,96 @@
# Clojure Adaptor for RxJava
Clojure bindings for RxJava.

# Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at [http://search.maven.org](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22rxjava-clojure%22).

Example for Leiningen:

```clojure
[com.netflix.rxjava/rxjava-clojure "x.y.z"]
```

and for Gradle:

```groovy
compile 'com.netflix.rxjava:rxjava-clojure:x.y.z'
```

and for Maven:

```xml
<dependency>
<groupId>com.netflix.rxjava</groupId>
<artifactId>rxjava-clojure</artifactId>
<version>x.y.z</version>
</dependency>
```

and for Ivy:

```xml
<dependency org="com.netflix.rxjava" name="rxjava-clojure" rev="x.y.z" />
```

# Clojure Bindings
This library provides convenient, idiomatic Clojure bindings for RxJava.

The bindings try to present an API that will be comfortable and familiar to a Clojure programmer that's familiar with the sequence operations in `clojure.core`. It "fixes" several issues with using RxJava with raw Java interop, for example:

* Argument lists are in the "right" order. So in RxJava, the function applied in `Observable.map` is the second argument, while here it's the first argument with one or more Observables as trailing arguments
* Operators take normal Clojure functions as arguments, bypassing need for the interop described below
* Predicates accomodate Clojure's notion of truth
* Operators are generally names as they would be in `clojure.core` rather than the Rx names

There is no object wrapping going on. That is, all functions return normal `rx.Observable` objects, so you can always drop back to Java interop for anything that's missing in this wrapper.

## Basic Usage
Most functionality resides in the `rx.lang.clojure.core` namespace and for the most part looks like normal Clojure sequence manipulation:

```clojure
(require '[rx.lang.clojure.core :as rx])

(->> my-observable
(rx/map (comp clojure.string/lower-case :first-name))
(rx/map clojure.string/lower-case)
(rx/filter #{"bob"})
(rx/distinct)
(rx/into []))
;=> An Observable that emits a single vector of names
```

Blocking operators, which are useful for testing, but should otherwise be avoided, reside in `rx.lang.clojure.blocking`. For example:

```clojure
(require '[rx.lang.clojure.blocking :as rxb])

(rxb/doseq [{:keys [first-name]} users-observable]
(println "Hey," first-name))
;=> nil
```

## Open Issues

* The missing stuff mentioned below
* `group-by` val-fn variant isn't implemented in RxJava
* There are some functions for defining customer Observables and Operators (`subscriber`, `operator*`, `observable*`). I don't think these are really enough for serious operator implementation, but I'm hesitant to guess at an abstraction at this point. These will probably change dramatically.

## What's Missing
This library is an ongoing work in progress driven primarily by the needs of one team at Netflix. As such some things are currently missing:

* Highly-specific operators that we felt cluttered the API and were easily composed from existing operators, especially since we're in not-Java land. For example, `Observable.sumLong()`.
* Most everything involving schedulers
* Most everything involving time
* `Observable.window` and `Observable.buffer`. Who knows which parts of these beasts to wrap?

Of course, contributions that cover these cases are welcome.

# Low-level Interop
This adaptor provides functions and macros to ease Clojure/RxJava interop. In particular, there are functions and macros for turning Clojure functions and code into RxJava `Func*` and `Action*` interfaces without the tedium of manually reifying the interfaces.

# Basic Usage
## Basic Usage

## Requiring the interop namespace
### Requiring the interop namespace
The first thing to do is to require the namespace:

```clojure
Expand All @@ -19,23 +105,23 @@ or, at the REPL:
(require '[rx.lang.clojure.interop :as rx])
```

## Using rx/fn
Once the namespace is required, you can use the `rx/fn` macro anywhere RxJava wants a `rx.util.functions.Func` object. The syntax is exactly the same as `clojure.core/fn`:
### Using rx/fn
Once the namespace is required, you can use the `rx/fn` macro anywhere RxJava wants a `rx.functions.Func` object. The syntax is exactly the same as `clojure.core/fn`:

```clojure
(-> my-observable
(.map (rx/fn [v] (* 2 v))))
```

If you already have a plain old Clojure function you'd like to use, you can pass it to the `rx/fn*` function to get a new object that implements `rx.util.functions.Func`:
If you already have a plain old Clojure function you'd like to use, you can pass it to the `rx/fn*` function to get a new object that implements `rx.functions.Func`:

```clojure
(-> my-numbers
(.reduce (rx/fn* +)))
```

## Using rx/action
The `rx/action` macro is identical to `rx/fn` except that the object returned implements `rx.util.functions.Action` interfaces. It's used in `subscribe` and other side-effect-y contexts:
### Using rx/action
The `rx/action` macro is identical to `rx/fn` except that the object returned implements `rx.functions.Action` interfaces. It's used in `subscribe` and other side-effect-y contexts:

```clojure
(-> my-observable
Expand All @@ -46,8 +132,8 @@ The `rx/action` macro is identical to `rx/fn` except that the object returned im
(rx/action [] (println "Sequence complete"))))
```

## Using Observable/create
As of 0.17, `rx.Observable/create` takes an implementation of `rx.Observable$OnSubscribe` which is basically an alias for `rx.util.functions.Action1` that takes an `rx.Subscriber` as its argument. Thus, you can just use `rx/action` when creating new observables:
### Using Observable/create
As of 0.17, `rx.Observable/create` takes an implementation of `rx.Observable$OnSubscribe` which is basically an alias for `rx.functions.Action1` that takes an `rx.Subscriber` as its argument. Thus, you can just use `rx/action` when creating new observables:

```clojure
; A simple observable that emits 0..9 taking unsubscribe into account
Expand All @@ -59,35 +145,10 @@ As of 0.17, `rx.Observable/create` takes an implementation of `rx.Observable$OnS
(.onCompleted s)))
```

# Gotchas
## Gotchas
Here are a few things to keep in mind when using this interop:

* Keep in mind the (mostly empty) distinction between `Func` and `Action` and which is used in which contexts
* If there are multiple Java methods overloaded by `Func` arity, you'll need to use a type hint to let the compiler know which one to choose.
* Methods that take a predicate (like filter) expect the predicate to return a boolean value. A function that returns a non-boolean value will result in a `ClassCastException`.

# Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at [http://search.maven.org](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22rxjava-clojure%22).

Example for Maven:

```xml
<dependency>
<groupId>com.netflix.rxjava</groupId>
<artifactId>rxjava-clojure</artifactId>
<version>x.y.z</version>
</dependency>
```

and for Ivy:

```xml
<dependency org="com.netflix.rxjava" name="rxjava-clojure" rev="x.y.z" />
```

and for Leiningen:

```clojure
[com.netflix.rxjava/rxjava-clojure "x.y.z"]
```
Loading