Hey again,
Glad to hear you found the examples useful.
1. The AgendDied message is sent back to the client managers when some
agent on some other client node died. There's not really much that
user code can do to recover from that error, except to log that it
happened. It may be worthwhile to send this to iteration subscribers
for logging purposes. If agent code throws a runtime exception, Akka
simply restarts a new instance to take its place. Users can already
know about that via the lifecycle hooks built into the Akka actors
API. If an agent dies and causes this message to be thrown, either
the agent or the entire session (and actor subtree) was terminated,
probably on purpose, by a user. If this notification is an addition
you think would be nice to have, by all means add an issue to the
project on github.
2. The bundler, when invoked from inside the EnMAS project directory
using "sbt bundler", does include src/main/scala in the classpath.
This naturally includes org.enmas and all of its subpackages. If you
need additional modules present when building/running agents, POMDPs,
or iteration subscribers, place them in the <enmas-dir>/lib
directory. This is the default location for SBT to search for
unmanaged dependencies, so these automatically make it onto the
classpath. A word of caution, since EnMAS does code provisioning of
POMDP classes from the client manager to the server, if your POMDP
implementation has external dependencies they need to be in place in
the <enmas-dir>/lib directory on the server as well. If you are
running both server and client on the same node this isn't an issue.
The bundler is meant to be a convenient way to compile and package
simple modules written to the EnMAS API. However, it doesn't do
anything extremely magical. A properly configured class path and
working knowledge of scalac may get you further than the bundler can
take you.
If you have any more feedback, results, or general info about your
research (I gather you're implementing a library for typed actors),
I'm very interested to hear about it. I'm particularly interested in
how you used this project to test your implementation.
Cheers,
--
Connor