Plugins
I'm now revamping Chungles to be mostly plugins. I've split off the UI to plugins now and I'd like to lay out frameworks for other parts of chungles such as networking (have standard mDNS, manual adding of nodes, samba, multicast, so on), searching (for server end, this will allow basic file searches, regex file searches, metadata searches, so on), and security (encryption and authentication layers as well as ACLs). I'm finishing up the preferences for plugins and much tweaking will be needed to ensure proper classpaths are set and project building is fairly simple.
The plugin system right now loads JARs in to the classpath at runtime via XML configuration inside the JAR. It will search some default locations for JARs, and then load them if an existing classname isn't loaded, then load JARs from the main XML, then write to that XML. I'm working up convenience classes, like the FileSystem class, which will treat the Chungles network as one big hierarchy and allow simple methods to traverse and utilize it. I'm considering adding Javascript support since Java6 now supports Javascript parsing, and possibly PERL for those die-hards.
Finally, I'm working on a plugin that will allow what I've been contemplating how to go about from the start. The plugin is an HTTP-server with WebDAV support. This will allow most platforms to mount the new Chungles hierarchy as a virtual filesystem. Since everything's a plugin, this will be an optional system, and later I can implement native filesystem drivers.