* seems like it will just work when using the adapters, since
it will simply delegate to the untyped RemoteActorRef
* ActorRefResolver was added for upporting erialization of typed ActorRef
* The ActorRef itself is not serializable with Java serialization,
and we shouldn't do that
* Add Java API 'getRef' to 'Terminated' (#22985)
* Expose `ActorRef[Nothing]` as `ActorRef[Void]` in Java API
* Expose `ActorRef[Void]` as Java API for more objects
* !queue.isEmpty is not an quarantee that queue.poll will return non-null,
see JavaDoc in AbstractNodeQueue
* the reproducer in the issue triggered dropping because mailbox was full
* possibility to use another behavior for the PostStop signal,
but default is to use current behavior
* it was difficult to fix the ActorContextSpec, mostly because
StepWise is an unknown beast, at some point we will replace that
* Add test with both normal and adapted AS
And add watch method on Actor, fix comment
* Formatting
* Avoid 'unreachable' in javadocs as it could be confusing
* Fix unwatching
* Exclude added methods from MiMa
* Some comments and variable names
* Fix compilation errors after rebase
* More specific docs on when Terminated is sent
* because it's a trait the static forwarders are missing when compiled with Scala 2.11
* changed ActorRef to a pure interface (trait) instead of abstract class and then ActorSystem
can be an abstract class instead
* also, improved docs of deferred
Partially based on https://github.com/akka/akka/compare/master...johanandren:play-around-with-typed-pre-2.5-rc1?expand=1
* remove build(), add methods, predicates
* akka.japi.function, docs, construction
* Javadocs, stand-alone entrypoints
* No case class to pollute the javadocs less
* Make BehaviorChain a proper BehaviorBuilder again
Separating these steps will keep us more flexible to introduce optimizations
later, at the expense of not being able to use the BehaviorBuilder as a
Behavior directly
* Less awkward generic when constructing the builder from Java
* Shorten/DRYer implementation for adding message/signal handlers
* Introduce 'mutable' javadsl builder API
* Use onMessage/onSignal in the builder as well
* Return unhandled if no case matches
* Using builder but extend MutableBehavior
* Use 'receive' terminology
* Use 'onMessage'/'onSignal' for receive builder, too
* 'unhandled' when no case matches
* Receive interface, promote 'this' for mutable behaviors
* Move ReceiveBuilder tests to its own file
* Remove need for StateHolder
* Test for and fix initialization issue
* Avoid lazy val during mutable actor initialization
* implemented an Intercept behavior that can handle the
scheduled TimerMsg, even though it's of a different type
* Intercept is similar to Tap but more powerful, implemented
Tap with Intercept. Intercept is internal API.
* When wrapping a behavior, e.g. Tap, the outer behavior must also be
Deferred if the wrapped behavior is Deferred
* PostStop not signaled when stopped voluntarily, intercept messages
to cancel timers when stopped is returned
* by making akka.typed.ActorContext empty, only providing
asScala and asJava the mixed scaladsl and javadsl is never
exposed to user
* thereby no ambigious spawnAdapter overload
* the only time akka.typed.ActorContext is exposed is when
implementing an ExtensibleBehavior, but that should be rare
and it's good to explicity choose asJava or asScala in that case
* no overhead since all of them are still the same instance
* API suggestion of MutableBehavior
* cleanup
* moved IntroSpec to akka-typed-tests for more efficient dev environment
* scaladsl.MutableBehavior
* add mutable to BehaviorSpec
* return this instead of same
* Trying out what is working and what is missing with a test
* Add missing API and cleanup (public vs internal)
* Note that PropsAdapter will make it possible to use Cluster Sharding
with typed entity actors
* add javadsl for the adapters, and full java tests for that
* Add narrow to ActorRef