Commit graph

58 commits

Author SHA1 Message Date
Viktor Klang
66a116d3d2 -str - Improvements and renames in internal streams classes
* Renames Module.grow -> Module.compose
 * Renames Module.connect -> Module.wire
 * Renames Module.growConnect -> Module.fuse
 * Renames Module.wrap -> Module.nest

 * Adds explicit identity equals and hashCode to InPort and OutPort

 * Reimplements many of the Source factories to avoid copying

 * Documents Module.compose, Module.fuse, Module.wire and Module.nest

 * Removes Attributes.nameLifted

 * Optimizes Attributes.nameOrDefault
2015-07-13 23:39:45 +02:00
Martynas Mickevičius
efc659b70a Merge pull request #17953 from drewhk/wip-17891-processor-support-drewhk
+str #17891: Add direct support for RS Processors
2015-07-13 17:21:10 +03:00
Endre Sándor Varga
47ea3fde38 created factory method 2015-07-09 18:01:45 +02:00
Endre Sándor Varga
333a006bf1 +doc #17569: Mention no support of "backpressure" strategy on Source.actorRef 2015-07-09 10:18:18 +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
c7a974dd1e Rename RunnableFlow to RunnableGraph 2015-06-23 18:49:53 +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
Martynas Mickevičius
27dd698706 =doc #17291 more stream test docs 2015-06-19 10:03:55 +03:00
Viktor Klang
8165c806fc =str - Introduces a TCK-verified SingleElementPublisher to optimize Source.single and things depending on it 2015-06-12 08:14:32 -04:00
drewhk
ca5d27abbd Merge pull request #17675 from akka/wip-remove-synchronousiterablepublisher-√
=str - Wip remove synchronousiterablepublisher √
2015-06-12 10:42:17 +02:00
Viktor Klang
3bf1c14b3a =str - fixing TODO about scaladsl & javadsl Source/Sink/Flow/BidiFlow.wrap not having to needlessly re-wrap 2015-06-07 11:34:53 +02:00
Viktor Klang
e8936964b5 =str - Deleted SynchronousIterablePublisher as it is replaced by a fast SingleElementPublisher + mapConcat 2015-06-06 17:04:44 +02:00
Viktor Klang
91e9396083 Merge branch 'wip-delete-futurepublisher-√' into wip-remove-synchronousiterablepublisher-√ 2015-06-06 16:28:18 +02:00
Viktor Klang
b49746b0da =str - Introduces a TCK-verified SingleElementPublisher to optimize Source.single and things depending on it 2015-06-06 16:07:35 +02:00
Viktor Klang
79b6de1558 +str - Deletes FuturePublisher and replaces it with Source.single(f).mapAsync(1)(identity) 2015-06-06 14:13:26 +02:00
Endre Sándor Varga
30e4a57ee0 +str #17464: mapConcat accepts immutable.Iterable 2015-05-21 14:28:09 +02:00
Endre Sándor Varga
7ad4fdc3ce !str #17123: Make materialized value handling method names consistent 2015-05-05 12:42:41 +02:00
Konrad Malawski
4ba11177ba =str #17323 Source.actorRef now emits buffered els before completion 2015-04-28 10:59:29 +02:00
Endre Sándor Varga
d73f78dcbf +str #17254: Accept graphs instead of Flow/Source/Sink etc. 2015-04-24 13:14:00 +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
373f1acf3a =str 15707 Define default names for sources and sinks
* Not intended to close the ticket, but improve the situation somewhat
  by defining default names of all sources and sinks.
* The stage names (actor names) are still rather weird

For example the following

    Source.single(1).named("aa")
      .map(identity).named("bb")
      .map(identity).named("cc")
      .runWith(Sink.publisher)

is materilaized with names:
flow-1-0-cc-bb-aa-singleSource : akka.stream.impl.PublisherSource@1787f2a0
flow-1-1-cc-bb-map : Map(<function1>,OperationAttributes(List(Name(map))))
flow-1-2-cc-map : Map(<function1>,OperationAttributes(List(Name(map))))
flow-1-3-publisherSink : PublisherSink

but that is out of scope for this commit
2015-04-20 21:04:03 +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
Patrik Nordwall
b69988c190 !str #16937 Remove section, in favor of via and separate flow 2015-04-10 17:34:29 +02:00
Mathias
1c112b935d +str #17039 add concatMat to Flow and Source 2015-04-10 15:10:42 +02:00
Mathias
85c0571620 !str #17039 change default materialization placeholder type from Unit to Any 2015-04-10 15:10:42 +02:00
Patrik Nordwall
f4ed62b84c !str #16520 Add ActorRefSource
* and rename the factory for ActorPublisherSource,
  from Source.apply to Source.actorPublisher

* including internal buffer, with OverflowStrategy

* support to complete/fail stream
2015-04-10 13:53:15 +02:00
Roland Kuhn
8f47b6dfcc Merge pull request #17105 from akka/wip-async-stage-∂π
add async stage
2015-04-10 10:52:01 +02:00
Roland Kuhn
4c623fade7 !str #17090 add AsyncStage 2015-04-10 09:00:36 +02:00
Patrik Nordwall
666bfade1e !str #16993 Separate scaladsl/javadsl for FlattenStategy
`abstract class FlattenStrategy` was used in both javadsl and scaladsl, but the concrete concat
for the javadsl was in javadsl.FlattenStrategy and the concrete concat for the scaladsl is in
stream.FlattenStrategy.

Now there are separate FlattenStategy in scaladsl and javadsl packages and conversion
as we have in other places.

* replace JavaConverters with explicit methods

* remove asJava/asScala for FlattenStrategy
2015-04-10 08:05:24 +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
Roland Kuhn
e870c7cbd2 many compile fixes and FlowMaterializer
The DSLs MUST NOT rely upon ActorFlowMaterializer, otherwise we cannot
add other materializers later.
2015-02-26 22:42:34 +01:00
Roland Kuhn
743cd98bf4 fix two wrong/flaky tests
- ordering is not preserved by shufflers in GraphOpsIntegrationSpec
- larger tolerance is needed in GraphBalanceSpec since balancing does
  not keep track of previous imbalances
- also add Source.repeat(elem)
2015-02-26 14:22:26 +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
01646d10ff !str #16448 Change error to failure
* one API change OverflowStrategy.error -> OverflowStrategy.fail
* error is still kept in the internals where we are at the reactive
  streams level
2015-01-30 10:30:56 +01:00
Konrad Malawski
85c286ac58 +str #16547 "lazyEmpty" source, which allows external triggering of completion 2015-01-29 14:28:08 +01:00
Konrad Malawski
9c9984aaf9 Merge pull request #16721 from ktoso/runOps-ktoso
!str #16563 terminal operations start with run*; runFold runForeach
2015-01-28 10:24:38 +01:00
Konrad Malawski
39038597b2 !str #16563 terminal operations start with run*; runFold runForeach 2015-01-26 15:39:36 +01:00
Patrik Nordwall
631b4ca5ac !str #16492 Remove closure in TickSource to make it shareable 2015-01-26 14:16:59 +01:00
Patrik Nordwall
5bf2ab43bd !str #16557 Rename Source.singleton to Source.single 2014-12-16 17:02:27 +01:00
Björn Antonsson
3e14cd05a9 =str #16380 Cleaned up Source/Sink/Key overlap 2014-12-02 16:38:14 +01:00
Martynas Mickevicius
64feb041be =str #15152 operation transformations 2014-12-01 20:07:55 +02:00
Endre Sándor Varga
7344063cfc =str: #15802: TickSource cancellable
also, fixing intermediate materialization for Source.concat
2014-12-01 15:56:25 +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 (√)
8f4e099bec Merge pull request #16328 from akka/wip-remove-async-iterable-publisher-√
+str - Removes AsynchronousIterablePublisher
2014-11-18 22:14:24 +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
Viktor Klang
18067cbf8f +str - Fixes #16065 by adding an IteratorPublisher and removing SimpleCallbackPublisher
Adds an IteratorPublisher and IteratorPublisherImpl
Removes the SimpleCallbackPublisher
Switches the callback-source () => Option[T] to use a new ThunkIterator and the IteratorPublisher
Removes the use of a ControlThrowable (Stop) for signalling end since we now use Iterator
Improves a couple of streams-related tests so when they fail we get better output
2014-11-10 12:56:41 +01:00
Patrik Nordwall
d1daec8590 Revert "+str #15802 Make TickSource cancellable"
This reverts commit 9e19ab095cd6ae37ea689d00031d58a54a90c912.
2014-11-07 10:54:30 +01:00