* and rename the factory for ActorPublisherSource,
from Source.apply to Source.actorPublisher
* including internal buffer, with OverflowStrategy
* support to complete/fail stream
* 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()`
- 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)
* 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).