* treat snapshot load failure in same way as other recovery failures
* if load of snapshot fails the persistent actor will be stopped, since
we can't assume that a consistent state would be recovered just by
replaying all events, since events may have been deleted
* additional recovery docs
* improve log message
* optimize recovering from snapshot in LocalSnapshotStore #20821
* replaced FilenamePattern regex with String operations when scanning snapshot filenames
* further optimization of the string operations
* fixed the logic in order to pass the SnapshotRecoveryLocalStoreSpec test
* Move (de)compression helpers to akka-stream #21395
* Move compression and decompression -related classes from
akka-http-experimental to akka-stream
* Add Compression helper object with functions to create
decompressing Flows
* Add a short cookbook entry
* =str move compression impl classes into their own directory (and change visibility)
* =str also expose gzip/deflate compression flows
* Fix formatting of plural ByteStrings in cookbook
* =str #21395 make compressor call Deflater.end in postStop to release resources
Also simplified the creation of the flow given a compressor.
* =str #21395 decompressors call Inflater.end in postStop to release resources
* =str #21395 smallish Scaladoc fixes
Do all (Akka)SSLConfig magic in one place directly in the TLS API.
Also, introduce new low-level entrypoint in TLS that allows to specify
an SSLEngine constructor directly without relying on SSLContext. This
allows users to use third-party SSLEngine implementations like netty's
OpenSslEngine together with akka-stream.
Otherwise, with 2.12,
ByteString().toString == "ByteString.ByteString1C()"
which would expose implementation details in the string representation.
This can lead to failing tests due to test expecting a particular string
representation of a ByteString which might be bad practice, yes, but is also
convenient.
The change is due to a fix in Scala for SI-9019 for which the string representation
of TraversableLike was changed which ByteString inherits.
See https://github.com/scala/scala/pull/5258/files
* In the logs of the failing test we can see that the first node is removed
as expected and then come back in the membership, which is possible in
case of conflicting membership state merge. It is supposed to be
removed again by the auto-down. That doesn't happen within the barrier-timeout.
When application closes inboud using engine.closeInbound the engine can generate an alert message and put it into writer.outboundList. As a result the engine can have a new data packet in outbound and its isOutboundDone will be false. We have to ensure that it will be flushed to the network, that's why we have to update lastHandshakeStatus via the actual status of the engine. Otherwise the actor will transition to the flushingOutbound state but will never flush outbound, since engineNeedsWrap precondition will be false.
Generally speaking whenever we signal something to the SSLEngine, weshould also read getHandshakeStatus afterwards to understand what we need to do next. This was done everywhere but for this engine.closeInbound.
* =act Test that serialization works instead of that the bytes match #21771
* =rem Don't try to serializa null file names in stack traces #21772
* =act Ignore some line number tests on Scala 2.12 #21773
* =act,rem Clean up some test serialization issues for Scala 2.12