This is the first step towards more type-safety in Actor interactions,
comprising:
* generic ActorRef[T] that only accepts T messages
* generic ActorSystem[T] extends ActorRef[T] (sending to the guardian,
whose Props[T] are provided for ActorSystem construction)
* removed the Actor trait: everything in there has been made into
messages and signals
* new Behavior[T] abstraction that consumes messages (of type T) or
Signals (lifecycle hooks, Terminated, ReceiveTimeout, Failed),
producing the next Behavior[T] as the result each time
* the ask pattern is provided and yields properly typed Futures
* variants of ActorContext are provided for synchronous testing of
Behaviors
All of this is implemented without touching code outside akka-typed
(apart from making guardianProps configurable), creating wrapper objects
around ActorRef, ActorContext, ActorSystem, Props and providing an Actor
implementation that just runs a Behavior.
* changed zeromq-scala-binding library
* modified build-release task to include distributions from cross builds
* removed tar-zip step from release script, because tgz package is not used from the website
* release script now releases for all crossScalaVersions
* dry run is the default now
* RootSettings plugin contains settings for root project
* other auto plugins that are meant only for root project depend on RootSettings
* other auto plugins that are meant for every project are enabled by default reducing boilerplate
* load sample builds from their definitions and replace library dependencies with project ones
* remove redefined sample build definitions
* test osgi sample by running a maven command
* deprecates awaitTermination, shutdown and isTerminated
* introduces a terminate-method that returns a Future[Unit]
* introduces a whenTerminated-method that returns a Future[Unit]
* simplifies the implementation by removing blocking constructs
* adds tests for terminate() and whenTerminated
Original here: https://github.com/krasserm/akka-persistence-testkit
New features:
* merged martin's tests
* usable from java (junit 4)
* simple bench test, which helps checking if ordering is perserved under
bigger workloads and simple perf checking
* does NOT include tests for already deprecated features (deleteMessages)
* docs
Resolves#13815
Conflicts:
project/AkkaBuild.scala
Breaks binary compatibility because adding new methods to Eventsourced
trait. Since akka-persistence is experimental this is ok, yet
source-level compatibility has been perserved thankfuly :-)
Deprecates:
* Rename of EventsourcedProcessor -> PersistentActor
* Processor -> suggest using PersistentActor
* Migration guide for akka-persistence is separate, as wel'll deprecate in minor versions (its experimental)
* Persistent as well as ConfirmablePersistent - since Processor, their
main user will be removed soon.
Other changes:
* persistAsync works as expected when mixed with persist
* A counter must be kept for pending stashing invocations
* Uses only 1 shared list buffer for persit / persistAsync
* Includes small benchmark
* Docs also include info about not using Persistent() wrapper
* uses java LinkedList, for best performance of append / head on
persistInvocations; the get(0) is safe, because these msgs only
come in response to persistInvocations
* Renamed internal *MessagesSuccess/Failure messages because we kept
small mistakes seeing the class "with s" and "without s" as the same
* Updated everything that refered to EventsourcedProcessor to
PersistentActor, including samples
Refs #15227
Conflicts:
akka-docs/rst/project/migration-guides.rst
akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
akka-persistence/src/main/scala/akka/persistence/Persistent.scala
akka-persistence/src/test/scala/akka/persistence/PersistentActorSpec.scala
project/AkkaBuild.scala
These are visible on the grafana dashboard,
in order to be able to see on which commit
stats have been recorded.
It's enabled via: `-Dakka.sbt.graphite=true`
Resolves#15103
Two changes have been made:
- In AkkaBuild, forced using UTF-8 to verify HTML files containing
diagrams
- In the documentation chapter Building Akka, added a section clarifying
the Graphviz dependency of generating Scaladoc Content Hierarchies
These fixes eliminates the issues I faced while building Akka on Windows
with NetBeans. The first issue is a Windows specific issue where the
default charset cannot be UTF-8. The second is Windows related in the
sense that Graphviz, the optional dependency of Scaladoc, had to be
manually resolved.
* take advantage of latest incremental compiler improvements
* scala 2.10.4
* Remove workaround in FutureSpec, bug fixed in Scala 2.10.4
* Change version of samples to allow snapshot overwrite in publishM2
* allow publish overwrite for osgi-dining-hakkers/uncommons