Commit graph

39 commits

Author SHA1 Message Date
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
Roland Kuhn
301ca3980d Merge remote-tracking branch 'pr/15886' into release-2.3-dev 2014-09-17 12:52:23 +02:00
Björn Antonsson
a902d079b0 +pro #15406 Split up stream into testkit, tests and tck 2014-09-16 10:16:38 +02:00