Commit graph

623 commits

Author SHA1 Message Date
Patrik Nordwall
a318676f4a !str Rename ProcessGenerator to FlowMaterializer 2014-04-16 17:12:21 +02:00
Patrik Nordwall
907765fc24 !str Add onClomplete to Flow DSL 2014-04-16 17:12:19 +02:00
Patrik Nordwall
274e1267e5 !str Add cleanup function to transform 2014-04-16 17:12:14 +02:00
Patrik Nordwall
39dd4164b5 !str Align construction of thunk and collection producers
* The user doesn't have to specify generator twice
2014-04-16 17:12:12 +02:00
Roland Kuhn
17ac2ddd6d !str make ProcGen ThreadLocal-context aware
Flow(x).map(x => Flow(...)) type of setups would previously use the
generator incorrectly if the streams were created within an actor. This
is fixed now by making all stream-support actors set a ThreadLocal which
tells ActorBasedProcessorGenerator to override its contained
ActorRefFactory with the locally provided one.
2014-04-16 17:12:09 +02:00
Roland Kuhn
e40a5a5b3f !str small fixes to ScalaDoc 2014-04-16 17:12:05 +02:00
Roland Kuhn
3941d4589a !str add ScalaDocs 2014-04-16 17:12:03 +02:00
Roland Kuhn
e62a61fe91 !str handle empty stream toFuture 2014-04-16 17:12:00 +02:00
Roland Kuhn
511392afce !str rename scala_api to scaladsl, thanks Patrik! 2014-04-16 17:11:58 +02:00
Roland Kuhn
9b78618c3a !str The Big Rename
Stream as a name is taken, so we use Flow (which does not happen to be
in scope for every Scala program already). This also makes it clear that
this constructs just the the pipe, which needs to be activated to become
a Producer.

Then, the different language bindings need to live in different
packages, otherwise they would not be able to use the same name of the
central abstraction. The plan is to use scala_api, java_api and
java8_api, for starters.
2014-04-16 17:11:55 +02:00
Roland Kuhn
289c03d1a1 !str move to SingleStreamProcessors.scala 2014-04-16 17:11:52 +02:00
Patrik Nordwall
054d3404bf !str Minor cleanup of generate in ActorProducer 2014-04-16 17:11:50 +02:00
Patrik Nordwall
87399ffda6 !str Specify defaultTimeoutMillis 2014-04-16 17:11:48 +02:00
Patrik Nordwall
a5efa4d4b9 !str Fix wrong test in StreamSpec 2014-04-16 17:11:45 +02:00
Roland Kuhn
c61958906f !str make Stream[+T] covariant 2014-04-16 17:11:43 +02:00
Endre Sándor Varga
ac1c6883c9 !str Fixed demand bug in ActorProducer 2014-04-16 17:11:40 +02:00
Roland Kuhn
7bcd71cd50 !str remove now-unneeded imports 2014-04-16 17:11:37 +02:00
Roland Kuhn
3cf21aced3 !str fix initial TransferState to not be null 2014-04-16 17:11:34 +02:00
Endre Sándor Varga
441144e44f !str Fixed comments round 1 2014-04-16 17:11:30 +02:00
Roland Kuhn
429f68e9d9 !str Implementation of multi-stream operations
- groupBy and splitWhen
 - static fan-ins: merge, concat, zip
 - factored out input and output conditions
 - factored out side-stream management logic
2014-04-16 17:11:27 +02:00
Roland Kuhn
2ab574bab6 !str remove now unused AbstractProducer 2014-04-16 17:11:23 +02:00
Patrik Nordwall
8adc5bcf90 !str Specify publisherShutdownTimeoutMillis 2014-04-16 17:11:13 +02:00
Patrik Nordwall
3c14e29bef !str Improve ActorPublisher
* proper order of processing subscriptions
* exception passing on error for new subscribers
2014-04-16 17:11:06 +02:00
Patrik Nordwall
0608db4b0d !str Add Stream from Iterator and Iterable
* actor based producer for iterator
* actor based producer for iterable
* remove old IteratorProducer and StrictProducer
2014-04-16 17:11:04 +02:00
Roland Kuhn
d2b40c6c21 !str fix small review comments 2014-04-16 17:11:02 +02:00
Roland Kuhn
659eff725a !str add ActorProducer and fix FanOutBox
The ActorProducer is an actor-based Publisher which runs a thunk of code
until Stop is thrown. This means that completion is only signaled if
demand is present for one more element, which makes sense and it legal
according to the wording of the spec. The TCK was too strict in this
regard and has been relaxed.

Things would have “worked” without the relaxation if I had not also
fixed the output buffer management. SubscriptionManagement in
collaboration with the ResizableMultiReaderRingBuffer previously
generated demand on its own, acting like a true buffer. This is
undesired since we want to auto-tune the input buffers, which would get
a lot more complicated and instable with autonomously buffering output
stages in the mix.

Removing this extra-buffering uncovered several places in the test suite
which implicitly relied on this, which were fixed as well.
2014-04-16 17:10:59 +02:00
Roland Kuhn
9298e720ed !str reorganize and implement consume()
StreamImpl.scala grew too big, so I split it up into producer, consumer,
processor, messages and processor generator files. Also unified the way
processors and consumers are created (ActorConsumer.props,
ActorProcessor.props).

Implement toFuture based on transformRecover and consume.
2014-04-16 17:10:57 +02:00
Roland Kuhn
bcd0941ff2 !str add transform’s isComplete and use it for Take 2014-04-16 17:10:54 +02:00
Roland Kuhn
f70a1b2b4a !str add Foreach 2014-04-16 17:10:51 +02:00
Roland Kuhn
0357182e9b !str make Grouped test more thorough 2014-04-16 17:10:47 +02:00
Roland Kuhn
78e8b4c0aa !str add fold 2014-04-16 17:10:44 +02:00
Roland Kuhn
f13582f64e !str make transform() onComplete work 2014-04-16 17:10:42 +02:00
Roland Kuhn
856b0957a0 !str clean up test output and ActorProcessorImpl
- intercept messages which are expected
- log failures encountered in ActorProcessorImpl in addition to sending
  them downstream
- remove the need to control reentrancy of pump() by only calling it
  from Receive blocks

@drewhk: you might want to take a look at this commit
2014-04-16 17:10:39 +02:00
Roland Kuhn
100ab9b458 !str add Drop 2014-04-16 17:10:35 +02:00
Roland Kuhn
b2ddd12e28 !str add test for Grouped 2014-04-16 17:10:32 +02:00
Roland Kuhn
0f09c26598 !str add test for Filter and Map 2014-04-16 17:10:28 +02:00
Roland Kuhn
e623dcb560 !str add ScriptTest and apply it to mapConcat 2014-04-16 17:10:24 +02:00
Roland Kuhn
606ec5fae8 !str rename mapSeq to mapConcat 2014-04-16 17:10:16 +02:00
Roland Kuhn
c8f462d6e6 !str rename SPI/TCK to org.reactivestreams 2014-04-16 17:10:10 +02:00
Patrik Nordwall
156b661bfc !str Add tests 2014-04-16 17:10:02 +02:00
Roland Kuhn
4a9f16f437 !str step 1: add impl part that compiles 2014-04-16 17:09:46 +02:00
Henrik Engstrom
e5e00370a0 Merge pull request #168 from jboner/1175-docs-remoting-he
Initial stab at remoting documentation. See #1175
2011-12-15 15:00:01 -08:00
patriknw
4b9a8e9149 Merge pull request #167 from jboner/wip-1487-future-doc-patriknw
DOC: Update Future (Scala) Chapter. See #1487
2011-12-15 14:48:46 -08:00
Viktor Klang
59931cbf3a Merge branch 'master' of github.com:jboner/akka 2011-12-15 23:34:27 +01:00
Roland Kuhn
29276b6e30 Merge pull request #169 from jboner/rk-doc-fault-handling
document FaultHandlingStrategy for Scala
2011-12-15 14:33:54 -08:00
Henrik Engstrom
39e1851d8a Merge pull request #165 from jboner/1063-docs-routing-he
Upgraded routing documentation to Akka 2.0. See #1063
2011-12-15 11:43:52 -08:00
Henrik Engstrom
ce7e717b59 Merge branch 'master' into 1063-docs-routing-he
Conflicts:
	akka-docs/java/routing.rst
	akka-docs/scala/routing.rst
2011-12-15 20:15:32 +01:00
Viktor Klang
f7f1c5d6c2 Merge branch 'wip-1456-document-typed-actors-√' 2011-12-15 19:09:57 +01:00
Roland Kuhn
e597db06d7 Merge pull request #164 from jboner/wip-1169-actor-system-doc-rk
received okay by mail
2011-12-15 07:20:15 -08:00
Viktor Klang
0ac684d14a Merge with master 2011-12-15 14:10:08 +01:00