* remove isDemandAvailable
* hide emit from CompletionHandler context
* throw if more than one emit in response to an input
* had to remove the OrderedMerge test/sample because emitting
from CompletionHandler is currently not supported
* FlexiRoute and FlexiMerge might become more capable later, see issue 16753
* 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
* descriptive name can still be defined with OperationAttributes.name
* revisit all factory methods (apply/create) and implement and document
them in a consistent manner
* replace all existing Transformer with Stage (PushPullStage)
* use Flow[ByteString, ByteString] as encoder/decoder transformer in http
* use the IteratorInterpreter for strict if possible
* emit then become
* emit then finish
* termination emits
* FlowTransformerSpec
* rework types to work with Java API
* rename and move things
* add scaladoc
- 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
The completeSubstreamOutput is used to not early complete the stream,
where as invalidating would shutdown the stream too early (and elements
wouldn't be emitted as expected).
* Fold Tap/Drain into Source/Sink
* Create Source/Sink helpers to create all Sources/Sinks
* Make concrete Source/Sink implementations private[scaladsl2]
Missing features are:
+ be able to use all junctions from Java
* re-think akka.stream.javadsl.japi (because variance)
+ better docs
+ enable all tests
+ Partial flow graph as well as GraphFlow tests
+ enabled more FlowTest tests
+ fixed naming of internal classes (no Java in class names)
+ added converters for UndefinedSink/Source
The junit-interface is treating "anything it cannot understand" as a
globbing pattern, thus when it didn't understand ScalaTest options, it
used them for globbing, and of course none of our junit tests matched
the "-oDF" pattern for example.
Debugged this with Stefan and we've opened an issue to improve the
integration in this respect:
https://github.com/sbt/junit-interface/issues/60Resolves#15178