Notably fixes the case where upstream finished before the connection
was successfully established, and avoids RSTing the incoming stream
when the outgoing stream is done (which is now possible due to the
cancellation reason being propagated).
* update MiMa latestPatch
* Even later latest
* exclude jdk9 classes in 2.6.x excludes
* mima exclude for SystemMaterializer.materializer type
Co-authored-by: Johan Andrén <johan@markatta.com>
This way the stack trace will be more helpful because it contains the stage
that actually triggered the materialization.
Otherwise, we will only fail during `preStart` in the interpreter where the
stage will be failed and the error be propagated through the stream where
it can be hard to figure out what happened.
Also improve the message itself to contain the user provided name of the
sink/source.
* allow Sink.queue concurrent pulling
* replace methods with default parameters on two overloaded methods to pass binary compatibility check :/
* replace ⇒ with =>
* reformat
* add javadsl
* fix PR comments and add concurrency to Sink.queue
* fix merge after auto resolving
* duplicate changes to javadsl
* revert source changes
* add graceful terminations
* clean up tests
* optimize imports
* trigger rebuild
* cover the case when materializer shutdown before async callbacks were processed
* vars to vals; fix require messages
* disable compatibility check for @InternalApi private[akka] class
This will also mean that completion will not be blocked by elements that
will later be filtered out.
One particular use case of that would be a kind of partitioning use case,
where you put several streams behind a broadcast and each consumer will filter
out elements not handled there. In that case, the broadcast can get head-of-line
blocked when one of the consumers currently has no demand but also wouldn't
have to handle any elements because they would all be filtered out.
* Add stream name to buffer overflow log message (#28085)
* De-emphasize stream name by moving it to the back
Co-authored-by: Arnout Engelen <github@bzzt.net>
* Add an overloaded version of the Flow#mapError (Java DSL) which does not use a Scala PartialFunction.
* Add test verifying mapError matching on parent class
* Add to Source, SubSource and SubFlow as well
* Unfortunately it seems the jdk9-only tests could not actually be compiled.
With these changes those can actually be compiled and ran again.
* Always link to jdk11 for java.* javadocs
* Update sbt-paradox-akka to fix linking to inner classes for javadoc
* Bugfix for delay stage with EmitEarly #28269
Emit early would make it pull eagerly even if out was not available,
when element arrived and buffer was full and out not available that
element would be left in the input port and never end up in the buffer.
* Additional cleanup of the Delay stage
* Scala 2.13.0 -> Scala 2.13.1
* Update to genjavadoc 0.15
* Allow 'higherKinds' without explicit import
To follow the 2.13.1 convention
* Remaining higherKinds imports
* Mima excludes for missing value classes in generics
* stream: debug dot output should point `shouldPush` in the right direction
* stream: also support Pushing and Pulling states for ConnectionSnapshot
Using ShouldPull for Pushing and ShouldPush for Pulling is not quite accurate
but probably good enough for now.
RetryFlow wraps a flow with context and allows to individually retry elements. A decider function decides if another try should be made and gives the element to try with.
Retries are backed off exponentially.
Retries are limited by maxRetries.
Inspired by the work of Gilad Hoch <gilad.hoch@thomsonreuters.com> and Martynas Mickevičius <self@2m.lt>
* some cluster logging improvements
* most logger names are actually good, when using ActorLogging since
config can be setup on the package (prefix)
* override logSource when StageLogging is used
* replace system.log with more specific logger
* SSLEngine factory instead of SSLContext and AkkaSSLConfig parameters
in TLS and Tcp
* Update TlsSpec to use SSLEngine
* Keep copy of old TlsSpec for test coverage of deprecated methods
* Update doc example of how to setup a SSLEngine
* full API and deprecations
* don't use default param values
* java doc example
* migration guide
* mima
* update to sslconfig 0.4.0
* hostname verification changed in sslconfig, so use jvm verifier
* change to mima file
* update doc sample, init SSLContext once
* remove FIXME for halfClosed
* Eager creation of system materializer on system startup #26850
* System level materializers always spawned under a specific system actor #26850
* No need for RepointableActorRef logic anymore
* MiMa filter
* Make the creation timeout higher
* some messages from ActorSubscriber were also used in other places,
so moved those to impl.ActorSubscriberMessage
* WatermarkRequestStrategy used by SourceRefImp, so moved there