Commit graph

52 commits

Author SHA1 Message Date
Roland Kuhn
556012b7ee !str,htc replace and remove OneBoundedInterpreter
main work by @drewhk with contributions from @2m and @rkuhn

This work uncovered many well-hidden bugs in existing Stages, in
particular StatefulStage. These were hidden by the behavior of
OneBoundedInterpreter that normally behaves more orderly than it
guarantees in general, especially with respect to the timeliness of
delivery of upstream termination signals; the bugs were then that
internal state was not flushed when onComplete arrived “too early”.
2015-11-01 14:53:52 +01:00
Viktor Klang
f29d7affbd !str #18692 javadsl.FlowGraph.Builder.add()
* also make factories more consistent by only offering
  FlowGraph.create()
* also remove secondary (edge-based) FlowGraph.Builder DSL
* also improve naming for conversions from Graph to
  Source/Flow/BidiFlow/Sink
2015-10-22 19:10:00 +02:00
Johannes Rudolph
3193eb8009 +stk add TestSubscriber/Publisher.Probe.ensureSubscription to allow manual initialization
Otherwise, it is not possible to use `expectNoMsg()` as the first operation.
2015-10-09 13:00:26 +02:00
Alexander Golubev
993e545e99 +str #18411 add FlowOps.zip/zipWith/merge/concat operators 2015-10-03 14:28:57 -04:00
Konrad Malawski
96da6ad4bb Merge pull request #18584 from kukido/kukido-17329-harmonize-spelling
=doc #17329 Spelling normalization, typos fixed.
2015-09-30 15:30:12 +02:00
Alexander Golubev
e51b2e4aeb +str #18111 SubscriberEvent in stream-testkit is not visible 2015-09-29 10:09:13 -04:00
Konrad Malawski
f416e89edb =str fix double-dilation in StreamTestKit 2015-09-29 10:26:18 +02:00
kukido
f858881b2e =doc #17329 Spelling normalization, typos fixed. 2015-09-28 22:45:38 -07:00
Konrad Malawski
880d51b89b Merge pull request #18503 from ktoso/wip-improvements-streamtestkit-ktoso
+str #18501 improvements and fixes in StreamTestKit (adds toStrict)
2015-09-28 19:29:17 +02:00
Konrad Malawski
dcfbaed206 =str #18501 make TestSink.probe consistent in style with Sink.head
Also known as, we do not use () for those
2015-09-28 18:44:54 +02:00
Konrad Malawski
ab96ebfca0 +str #18501 improvements and fixes in StreamTestKit (adds toStrict) 2015-09-25 17:19:00 +02:00
Roland Kuhn
68ba0643d6 =str,htp clean up build warnings
- explicitly provide Unit values and place parens around tuple creation
- remove structural type usage in TestUtils
- fix Java double-casts
- use unused Java values by asserting their non-nullness
- work around inability to place case class in trait (scripted test)

The remaining warnings about using private types in public methods are
bogus as reported in https://issues.scala-lang.org/browse/SI-9490.
2015-09-25 15:20:23 +02:00
Johannes Rudolph
51f1d36852 +stk add missing TestSubscriber.requestNext() method 2015-08-26 13:39:20 +02:00
Viktor Klang
2725bfc044 =str - Various internal Akka Stream improvements
* Gives Inlets and Outlets a `carbonCopy` method and switches to allocate them via `apply`
* Removes 4 Array allocations per FanIn and uses a bitmasked array instead
* Makes the FlattenStrategy.concat instance a singleton
2015-06-30 11:45:50 +02:00
Endre Sándor Varga
7879a5521b Rename FlowMaterializer to Materializer 2015-06-23 18:47:28 +02:00
Endre Sándor Varga
dc7269e620 Rename OperationAttributes to Attributes 2015-06-23 18:45:04 +02:00
Roland Kuhn
097a10edfc fix FlowStageSpec (and some boyscouting) 2015-06-19 16:26:53 +02:00
Roland Kuhn
d462cdd1b4 =str fix sub-upstream cancellation in concatAll
- ActorProcessor terminated eagerly when ConcatAll had just taken up a
  new input stream but not yet received onSubscribe for it

- The ActorProcessor eagerly shuts itself down upon onError and that
  cannot be changed without completely reworking the Pump, so I opted
  for just tracking the outstanding substreamSubscribers that have not
  yet seen OnSubscribe and making them cancel properly when that arrives
  (possibly later).
2015-06-19 16:26:48 +02:00
Endre Sándor Varga
f4c83771bb !str #17393: Make stream-tests pass with serialize-messages=on 2015-06-02 12:32:27 +02:00
Endre Sándor Varga
8a7f6a357d =str #17453: Fix substream RS compliance, awaitAllStagesStopped and Fanin leak 2015-05-19 11:37:03 +02:00
Konrad Malawski
0aecf21c7a =str more robust dispatcher checking in FileSource specs 2015-04-24 12:27:48 +02:00
Martynas Mickevičius
8e2cc3e70f =str #17089 stream testkit 2015-04-24 12:25:54 +03:00
Patrik Nordwall
f930bcdda8 =str #15191 Verify that stage actors are stopped
* found one bug of too early actor stop and thereby missing cancel of upstream,
  in fan-in tests ""work with one immediately failed and one nonempty publisher"
2015-04-23 20:00:12 +02:00
Konrad Malawski
cebd9bf1ae +str #15588,#17229 Java 6 Synchronous File Sink / Source
These are synchronous implementations, because we need to be Java 6
  compatible while developing on 2.3.x. However asynchronous
  implementations using AsynchronousFileChannel will come soon for JDK7
  users.

+ ActorPublisher/Subscriber now manage stopping of the actor
+ added documentation on configuring dispatcher for File IO
+ properly handle if source file does not exist
+ file sink / source come with default io dispatcher
> verified no actors are leaking
> exceptions are caught and onErrored properly
+ moved files to akka.stream.io
+ Added OutputStreamSink and InputStreamSource
2015-04-23 18:15:10 +02:00
Patrik Nordwall
c6404d3e44 !str #17189 Add withAttributes and named to Graph
* Remove optional attributes parameter in favor of withAttributes
* Overload explosion when trying to add attributes to ZipWith.
* Aligned with Flow and Source.
2015-04-17 11:31:32 +02:00
Patrik Nordwall
00033313e0 !str #16951 Unify scaladsl and javadsl OperationAttributes
* Move actor specific attributes to ActorOperationAttributes
2015-04-16 14:16:01 +02:00
Endre Sándor Varga
a7af773e2c !str #16168: Expose materialized value in the graph as a "source" 2015-04-07 12:51:18 +02:00
Patrik Nordwall
3dc4e6d077 !str #16992 Rework Source and Sink name parameter
* Remove name parameter (no overloads), naming is performed using `.withAttributes` or the new
  convenience `.named`. Those adds the OperationAttribute.Name and also change the name of the
  shape Inlet and Outlet.

* Remove Source/Sink parameter list for 0 parameter methods,
  this allows usage of `Sink.head` instead of `Sink.head()`
2015-03-06 09:24:00 +01:00
Patrik Nordwall
23c533fdd5 =str #16751 Update to reactive-streams 1.0-RC3
Changed rules:
* 1.9 Always onSubscribe prior to any other signals
* 1.9 NullPointerException if subscriber is null
* 3.17 Long overflow, effectively unbounded instead of onError

Fixed some more things:
* fixed some FIXME
* Long drop and take
* memory leaks in tck tests, use BeforeClass to create ActorSystem
  use AfterClass to shutdown ActorSystem
* more tck tests
* don't emit OnComplete when substream is cancelled
* work around for memory leak in PrefixAndTail
2015-03-05 17:58:24 +01:00
Endre Sándor Varga
8d77fa8b29 !str #16902: Unify stream internal representation
also =str #16912: Fix StreamTcpSpec flakiness
2015-02-26 10:06:56 +01:00
Patrik Nordwall
693dcbefcc +str #15750 Prototype of stream supervision
* add supervion for stages and built in ops run by interpreter
* add supervision for mapAsync and mapAsyncUnordered
* add supervision to groupBy and splitWhen
* reference doc for scala and java
2015-02-20 15:44:01 +01:00
Patrik Nordwall
a165de74b3 =str #15859 Eliminate usage of Stash mailbox
* As reported in #16522 Stash is slow
* Nothing fancy here, but should be more efficient than Stash
2015-02-03 11:41:48 +01:00
Patrik Nordwall
cd9d503b03 !str #15851 Rename FlowMaterializer and settings
* FlowMaterializer is now the actor independent interface
* ActorFlowMaterializer is the actor based interface
* MaterializerSettings renamed to ActorFlowMaterializerSettings
* impl.ActorBasedFlowMaterializer renamed to impl.ActorFlowMaterializerImpl
* Optimizations included in ActorFlowMaterializerSettings
* Note that http is using FlowMaterializer in api, but I suspect that it
  will currently only run with a ActorFlowMaterializer
2015-01-27 19:22:22 +01:00
Patrik Nordwall
5b72928439 Merge pull request #16710 from akka/wip-15349-err-logging-patriknw
=str #15349 Sanitize error logging
2015-01-27 14:19:32 +01:00
Patrik Nordwall
7cf80ab3f3 =str #16602 Suppress dead letters
* akka 2.3.9
* also added missing `final` to case classes
2015-01-23 17:18:09 +01:00
Patrik Nordwall
03abd197fc =str #15349 Sanitize error logging 2015-01-23 16:12:38 +01:00
Patrik Nordwall
7034c60eb3 !str #16400 Add Java API for StreamTcp
* move io.StreamTcp to scaladsl.StreamTcp
* add javadsl.StreamTcp that delegates to scaladsl implementation
* move impl
* add java test
2014-12-18 12:40:41 +01:00
Patrik Nordwall
601b67c8e7 !str #16455 Remove unused fanout settings 2014-12-16 15:07:41 +01:00
Konrad 'ktoso' Malawski
11af2213ac =str #16314 harden GraphConcatSpec, it can error as soon as possible 2014-11-28 15:43:48 +01:00
Björn Antonsson
672d4ed091 +str,htc #16071, #16072 New Stream Tcp and Http API
* StreamTcp and Http extensions now return Flows and Sources that can be materialized later
* Flow can now be completed with another flow to be turned into a runnable flow
2014-11-28 10:41:57 +01:00
Viktor Klang
14afce31ef +str - Renames SynchronousPublisherFromIterable to SynchronousIterablePublisher
Introduces an Actor-based IterablePublisher
       Gives names to most of the publishers
2014-11-18 19:48:26 +01:00
Viktor Klang
db4e5c4a29 =str - Various Flow and FlowMaterializer improvements
- Switches from using size-of-1/2 Vectors to using Lists
  - Fixes an issue where processorForNode wouldn't use the dispatcher form the settings
  - Adds a dedicated Collect fusion op
  - Adds various simplifications to ActorBasedFlowMaterializer
  - Adds FIXMEs where appropriate
  - Switches `grouped` to use a VectorBuilder
  - Adds support for `scan`
  - ActorBasedFlowMaterializer now uses Iterator instead of head+tail decomp on Seqs
  - Identity and Completed Transformers are now cached
  - Adds dedicated AstNodes for all combinators
  - Adds a hook-in point for fusion in `ActorBasedFlowMaterializer`
  - Adds support for `Operate` an AstNode with a function that create a fusing.Op
  - Adds experimental and slow optimizer as a PoC
  - Adds verification that Ast.Fused does not exist in optimizer input
2014-11-17 17:45:48 +01:00
Patrik Nordwall
c6b80dfdab !str Remove unused io2 package 2014-11-06 11:02:47 +01:00
Patrik Nordwall
5f75af7059 +str #15205 Add FlexiRoute junction 2014-11-05 10:58:04 +01:00
Martynas Mickevičius
412003c11e !str #16066 rename connect to via/to
* add missing implicit conversions for ~>
* tests for all combinations when using ~>
2014-10-31 10:43:42 +02:00
Patrik Nordwall
7c0c618791 !str #16039 Remove old scaladsl, rename scaladsl2
* and impl2, testkit2
* keeping io2 for now
2014-10-28 14:20:19 +01:00
Björn Antonsson
0f61909ea7 !str #16102 Fold Tap/Drain into Source/Sink
* Fold Tap/Drain into Source/Sink
* Create Source/Sink helpers to create all Sources/Sinks
* Make concrete Source/Sink implementations private[scaladsl2]
2014-10-17 14:05:50 +02:00
Björn Antonsson
7334680b8b +str #15904 Ported Tcp IO to new Stream DSL 2014-10-08 15:15:46 +02:00
Patrik Nordwall
14d3501f92 !str #15950 Add runWith and remove toX
* runWith(drainWithKey) and runWith(tapWithKey) returning the
  materialized drain/tap
* remove toPublisher, toSubscriber, and friends, in favor of using
  runWith
* MaterializedMap is the return type for both flow and graph
* Source[T] return type for Source.apply methods
2014-10-06 12:12:05 +02:00
Björn Antonsson
a6ab82f992 !str #15977 Rename and change types in the new DSL
* Cleaned up type signatures
* Changed names of Source/Sink/ProcessorFlow to Tap/Drain/Pipe
* Introduced new Source/Sink/Flow
* Made all Pipe types package private
* Changed the TypeGraph DSL to work on Flow/Sink/Source
2014-10-02 17:32:08 +02:00