* Remove Scala 2.11 from crossScalaVersions
* because +buildRelease doesn't work with mixed crossScalaVersions
* let's use akka.build.scalaVersion when building for 2.11
* aggregatedProjects adjusted depending on akka.build.scalaVersion is 2.11 or not,
there excluding/including the -typed modules
* update travis to use akka.build.scalaVersion
* Effect.persist(event).thenUnstashAll().thenRun(..) can be misinterpreted
as the callback of thenRun is invoked when all unstashing has been completed,
while it is actually running the callback first and the the unstashing process
follows.
* Unstashing is a process where stashed commands are processed one-by-one
and waiting for persist effects to complete before processing next.
* Even if we would come up with a way to keep pending callbacks around during
the unstashing it would probably be complicated for user to reason about it.
Suddenly a callback is executed from an old command although several other
commands (that were stashed/unstashed) have been processed inbetween.
* This change makes the unstashAll Effect terminal, meaning that additional
effects like thenRun can't be added after unstashAll.
* ReplyEffect is also terminal, which makes sense since it's supposed to be
returned effect. It must still be possible to combine with thenUnstashAll,
thenReply.thenUnstashAll.
* include state in EventSourcedBehavior.receiveSignal, #26574
* because state type can't be inferred in RecoveryCompleted
* and probably useful to always have access to the state for the signals
* PartialFunction with (state,signal) tuple
* improve how to handle exceptions from signals
This change ignore the terminated passed from untyped and map it into Done,
with some minor changes for testing termination.
termiate() returns Unit to not bias it towards the Scala API, completion
can be observed with whenTerminated or getWhenTerminated
Instead of delivering the custom message, store it locally and then
deliver it when the Terminated instance is received.
This ensures that terminatedQueued is properly cleaned when watchWith is
used.
* lease api
* Cluster singleton manager with lease
* Refactor OldestData to use option for actor reference
* Sharding with lease
* Docs for singleton and sharding lease + config for sharding lease
* Have ddata shard wait until lease is acquired before getting state
* Table switch for interpreter ~20% faster
* Avoid instanceof on message in interpreter (but keep single method)
~10% faster
* Use the behavior tags all over ~4% improvement
* Make next a single tableswitch
* Behavior.wrap isn't actually used anymore
* Sidestep the untyped behavior stack
* The scenario was (probably) that a node was restarted with
same host:port and then didn't join the same cluster. The DData
Replicator in the original cluster would continue sending messages
to the new incarnation resulting in false removals.
* The fix is that DData Replicator includes the system uid of the sending
or target system in messages and if recipient gets a message that is from/to
unknown it will discard it and thereby not spreading information across
different clusters.
* Reproduced in ClusterReceptionistSpec
* Much hardening of other things in ClusterReceptionistSpec
* There are also some improvements to ClusterReceptionist to not leak
Listing with refs of removed nodes.
* use ClusterShuttingDown
* The reason for using sender system uid instead of target uid in messages
like Read and Write is that then the optimization for sending same message
to many destinations can remain.
* Adds internal access to materializer before initialization (#25324)
* Implements new actorRef source based on graph stage (#25324)
* Removes obsolete actorRef source (#25324)
* Improves backwards compatibility with old implementation (#25324)
* Removes dedicated new subclass for materializer access again (#25324)
* Improves implementation (#25324)
* Finalizes implementation (#25324)
* Small improvements to API and documentation (#25324)
* Completion strategy as a replacement for poison pill (#25324)
* Adding more tests and updating the documentation (#25324)
* Enable strict scalac options for akka-protobuf
Unfortunately it still produces a Java warning, but I see no safe way around
that (so we can't just add `-Werror` to javacOptions)
* Remove 'dead' code, bringing the class back in line with upstream