- add Java API for FaultHandlingStrategy.Action values
- verify that Mailbox.debug being a constant elides its printlns
- remove dead code from bubbleWalker
- was used only in BalancingDispatcherSpec (was dirty, fixed dirty) and
TestActorRef
- fixing the latter involved opening up ActorCell slightly for allowing
new AutoReceivedMessage types (that trait is now not sealed anymore)
- TestActorRef then checks underlying.actor and retrieves it using a
message-based request if it is still null
- remove unused ActorDeployer trait
- put everything in one class with simple initialization structure and
one protected method to override for adaptations
- adapt RemoteDeployer accordingly
- change “remote” key to directly contain the single remote address,
since there is nothing else to configure
- adapt test cases accordingly
- they still must start with “/” in the configuration file
- they will be looked up while deploying under /user and /remote, the
latter being necessary to support fully transparent deployment (i.e.
the path under /remote is shortened from the left to arrive at the
logical ancestor which is just a child of /user on some node)
- RemoteCommunicationSpec last test currently failing, lookup of
deployment must be fixed to work zig-zag across nodes
- commit mainly to merge with Henrik’s router work and get the surface
clean
- add supervisor to remote USE message
- make remoteDaemon a VirtualPathContainer like
LocalActorRefProvider.tempContainer (i.e. synchonous with CHM-based
child lookup), scrap remoteDaemonSupervisor and rename remoteDaemon to
“/remote” to match the plans in the docs
- comment out the remote deployment configuration section, to be done
when Henrik is finished with RoutedActorRef work
- for now only “remote.nodes = ["sys@host:port"]” is looked at, i.e. if
at least one is present, the first one is used to determine where to
deploy the currently created child (routers will do the scaling-out
component) [rest is commented out]
- multi-jvm tests not yet re-enabled (need to be adapted), but all other
tests are GREEN (at least on my machine)
- create RemoteActorRef in actorFor
- simplify send/receive because Futures/Exceptions do not go over the
wire anymore
- add RemoteCommunicationSpec which uses two ActorSystems communicating
in the same JVM via TCP socket
- moved RemoteInterface.scala into akka-remote, not needed anymore since
the plugin is loaded as ActorRefProvider now
- removed some old unused imports
- split out remote aspects from Deployer & DeployerSpec into
RemoteDeployer & RemoteDeployerSpec (the latter in akka-remote)
- created a ticket for cleaning up the rest, mostly remove all
occurrences of “remote” and “cluster” from akka-actor in this way
All of this was triggered by wanting to:
- change the signature of RemoteSupport.send to require a RemoteActorRef
recipient
- AkkaSpecSpec failed with nothing in the locker, but only on Jenkins
- cause: Davy Jones doesn’t get a chance to run because nobody actually
waits for his processing
- thus, give him permission to leave this world and have him confirm
that
- when no name was given, it resulted in a simple call to the provider
- which is completely the wrong thing to do in case of ActorSystem
- so, introduce CreateRandomNameChild op for guardians and use that
The reason for the previously failing test case was that Jenkins has
only two (logical) cores and the test config sets the
core-pool-size-factor to 2, meaning four threads. This is not enough to
have four Futures waiting (as per the test) and one actor which actually
does the work (the guardian in this case). Hence, make it so that
core-pool-size-min gives the absolute minimum and set the default of
that to eight.
While doing so I cleaned up the MessageDispatcherConfigurator to not use
HOF since now configuration items are not optional anymore, yielding a
flow which is much more readily understandable.
- I had reused akka.actor.timeout for ActorSystem.actorOf calls (which
“ask” the guardian to create the actor), but 5sec proved too short for
Jenkins
- CreationTimeout defaults to 30sec now, let’s hope Jenkins is not
slower than _that_.
* Added JavaActorContext, UntypedActor.getContext
* implicit val context in Actor needs to be implicit to support forward,
it would be nice if it wasn't implicit because now I can't override context
in UntypedActor
* Removed implicit def system in Actor
* Removed implicit def defaultTimeout in Actor
* Removed receiveTimeout, children, dispatcher, become, unbecome, watch,
unwatch in Actor
* Removed corresponding as above from UntypedActor
* Removed implicit from dispatcher in ActorSystem
* Removed implicit def timeout in TypedActor
* Changed receiveTimeout to use Duration (in api)
* Changed many tests and samples to match new api