* Fixed obvious
* Created tickets for several, #1408, #1409, #1410, #1412, #1415, 1416, #1418
* Moved LoggingReceive from akka.actor to akka.event
* Touched several of the FIXME to make them visible in code review
- duplicate name detection done within ActorCell/ActorSystem (i.e. at
parent level)
- no caching needed for local look-ups, might re-introduce cache in
remote layer
- implement suitable equals/hashCode on ActorPaths
- fix some (unintended => buggy) name reuses which previously silently
returned a different actor
- serialization & EventStreamSpec still failing, need to commit to merge
in other stuff on which the future fixes will depend
- create ActorSystemImpl trait to make ActorSystem fully abstract
- add Java API for constructing (ActorSystem.create(...))
- only go through factory methods because .start() has become necessary
- rename all user-facing occurrences of “app” to “system” (Actor trait
and TestKit/AkkaSpec)
- pass ActorSystemImpl to ActorRefs upon creation, which means that
actorOf() and friends need such an argument, which must be provided to
the ActorRefProvider by the ActorRefFactory implementation
- remove Props.randomName and associated logic
- ActorRefFactory contains AtomicLong which is used to generate unique
children names
- base64-like encoding is used with reverse “digit” order
- disallow given names which are null, empty or start with ‘$’
- random names start have ‘$’ prepended (‘$’ not being one of the 64
characters)
- special marker “$_” for tempPath until “/tmp” supervisor is introduced
- TestActorRef uses globally unique “$$” prefix, as it creates actors
beneath any supervisor as instructed by the user
- every actor is now supervised, where the root of the tree is
app.guardian, which has its supervisor field set to a special ActorRef
obtained from provider.theOneWhoWalksTheBubblesOfSpaceTime (this name
is meant to indicate that this ref is outside of the universe, cf.
Michio Kaku)
- changed all tests to obtain specially supervised children (i.e. not
top-level) via (supervisor ? Props).as[ActorRef].get
- add private[akka] ScalaActorRef.sendSystemMessage for sending
Supervise()
- everything routing or remote is broken wrt. supervision, as that was
not “properly” implemented to begin with, will be tackled after
app/supervision/eventbus/AkkaSpec are stabilized enough
someone should look at remoting vs. timeout (i.e. which is sent around),
because I removed that in some places. It might simply be irrelevant
once we remove the Future special-casing.