- “case object” will emit a concrete class without constructor, so put abstract class in its way in order to obtain an accessible type for Scala & Java (i.e. without $) - add “def instance = this” to make access uniform from Java - this does not work for nested case objects because of missing static forwarders, so keep those as they were - fix issue with case object FromConfig colliding with case class FromConfig by open-coding the “case”iness in this case (should be thrown out in 2.1)
…sport so 3rd parties can extend it properly
deprecate the objects
By only registering a PromiseActorRef on access to `path` we can shave off about 30% of the overhead involved in the common, purely local `ask` use case. Unfortunately `path` is accessed not only for ActorRef serialization but also during `toString`, `equals` and `hashCode`, so one should be careful how to handle PromiseActorRefs in hot paths.
The previous implementation contained a race condition potentially violating the "bang never throws exception" contract
…he issue of binary compatibility