When a resource (an actor) is (un)registered, listeners on connected systems are notified.
JID 2.0.1 - Supports empty tuples.
JASocket 0.1.0 - Initial release of a light-weight platform for Mobile Actors
JFile 2.0.9 - Depends on JID 2.0.1.
JActor 4.2.0: Supports actors without mailboxes (degraded actors).
JID 2.0.0: Supports balanced lists and maps.
JFile 2.0.8: Depends on JActor 4.2.0 and JID 2.0.0.
JActor 4.2.0 - Added support for degraded actors (actors without mailboxes).
JID 2.0.0 RC4 - Fixed bugs in IGet and ISetBytes requests; enhanced the RootJid API.
With BMapJid's incremental deserialization/reserialization, you can update its serialized data (byte array) for a table with 100,000 entries in half a millisecond--which makes it possible now to write high-performance databases in Java.
JID collections are now generic.
Fixed bugs in BListJid.
MapJid is now a list of MapEntry.
Fixed a bug in ListJid.iRemove.
New AppJid: A base class for applications, AppJid provides a durable tuple without an external interface.
BListJid, an alternative to ListJid that uses balanced trees, can deserialize/insert an entry/reserialize a list with 100,000 in .25 milliseconds.
Recursive structure types are now possible by passing actor types rather than actor factories to the JID factory constructors.
UnionJid is an efficient alternative to ActorJid, that limits value types to a set of JID types.
Now depends on JID 1.5.0.
ActorJid no longer implements Comparable;
The iGet returns null consistently when i is out of range;
Map interface has been reworked.
Now depends on JID 1.4.1.
MailboxFactory.eventException(Request request, Exception exception) is now called to handle uncaught event exceptions. Override this method in JAMailboxFactory to log these exceptions instead of printing them.
Fixed event exception handling bug.
JAFactory.getActorFactory now consistently throws an IllegalArgumentException when the binding for the actor type can not be found.
StateMachine has been renamed SimpleMachine.... read more
The above blog entry shows how to use JActor's exception handling facility.
I think you will enjoy the blog entry above. It covers a lot more detail about the API while using some of the same examples from the cod samples slides.
Uncaught exceptions from an event request are now reported on stdout. Fixed a bug in properties introduced in JActor release 4.0.0.
The deprecated classes, ConcurrentRequest and SynchronizedRequest, have been deleted. The Request.processRequest method is now abstract. And the JLPCActor.processRequest method has been removed.
JFile now depends on JActor 3.3.2; benchmark results have been updated.
JID now depends on JActor 3.3.2; benchmark results have been updated.
JLPCActor has been rewritten for greater clarity and to cover previously overlooked corner cases. Additional test cases have been added. But the API remains unchanged.
JAThreadManager.close now sends an interrupt to all the threads in the pool before doing a join. (minor bug fix)
Added support for String and Tuple based transactions and some convenience methods.
I've been cleaning up the code a bit and then cleaned up the page on Block Pipelines: https://github.com/laforge49/JFile/wiki/Block-Pipelines
Then I wrote a new page on DB: https://github.com/laforge49/JFile/wiki/DB
I have had too many distractions on my time. Hopefully now I can work through the needed docs and release JFile 2 this week.
There are a bunch of issues for JActor version 4: https://github.com/laforge49/JActor/issues?state=open
These issues are mostly about moving to a simpler code base, with small improvements to the API and a potential speedup.
The question is: would you like to be involved? If you do, join the development group and get involved! http://groups.google.com/group/agilewikidevelopers/
Message passing on my new machine when sending messages between actors which have the same mailbox is about 150,000,000 per second, which is just a bit faster than when passing messages between actors which have different mailboxes.
We used to report a much higher number, but then we fixed an exception handling bug. And while before we would just pass naked requests when the mailboxes were the same, now all messages must be wrapped--which used to only apply when passing messages across different mailboxes.... read more