Commit graph

636 commits

Author SHA1 Message Date
Patrik Nordwall
ecd11df79f Merge pull request #15053 from akka/wip-3960-EndpointWriter-stashing-2.3-patriknw
=rem #13960 #13989 #13742 #13985  Optimize EndpointWriter (for validation)
2014-04-25 15:03:22 +02:00
Konrad Malawski
81ae330d02 Merge pull request #15016 from akka/wip-13890-akka-java8-template-ban
+sam #13890 Add Akka Main Activator template for Java 8
2014-04-24 13:57:38 +02:00
Björn Antonsson
77f776ef50 Merge pull request #2124 from akka/wip-update-test-dependencies-ban
=pro Update test dependencies to Scala 2.11 cross published versions
2014-04-22 09:21:52 +02:00
Roland Kuhn
f03c4a5e1d Merge branch 'akka-streams-for-master' into release-2.3 2014-04-17 09:18:47 +02:00
Roland Kuhn
0a09084a12 !str remove StreamIO and reuse akka.io.IO 2014-04-16 17:12:41 +02:00
Roland Kuhn
11125c9893 !str clarify the semantics of splitWhen 2014-04-16 17:12:39 +02:00
Roland Kuhn
84534ca7f7 !str properly separate the akka-stream build from the rest
- pulling in akka-testkit as project dependency was a bit weird, it also
  leaked into the POM as a -SNAPSHOT dependency
- copied AkkaSpec and Coroner into akka.stream.testkit
- removed akka-stream from the akka aggregate: if it is in there, it
  gets pulled into all-tests which will then be confused by two
  different dependencies on akka-testkit (project and 2.3.2), one of
  which has test scope accessible and one has not. Guess which one has
  the “higher” version number and is picked?
2014-04-16 17:12:36 +02:00
Patrik Nordwall
4621d0ddcc !str Fix NPE in TcpListenStreamActor
* Can happen when server can't bind, or client can't connect
* Also some renaming residue
2014-04-16 17:12:34 +02:00
Konrad Malawski
2a8937a5e6 =str updated stream tests to use Java TCK
A bit more hoop jumping in the constructors due to using plain java tck
2014-04-16 17:12:34 +02:00
Endre Sándor Varga
7a254956f5 !str Fixed part of review comments 2014-04-16 17:12:30 +02:00
Endre Sándor Varga
406d06a540 !str Initial version of Tcp implementation 2014-04-16 17:12:27 +02:00
Patrik Nordwall
83432154d5 !str Make soonToFailPublisher tests handle both cases
* Add expectErrorOrSubscriptionFollowedByError to ConsumerProbe
2014-04-16 17:12:25 +02:00
Endre Sándor Varga
14ef65262f !str Increased test coverage 2014-04-16 17:12:23 +02:00
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