JAR != zip file. I always wonder why people put docs, etc in JARs.
Good point, I take notes. I should distribute zip files.
Note: the jar files are zip files with a different file name extension. You can rename them to .zip and unzip them.
I *want* to see how it works. I look around in the sources JARs. Why are there so many? I opened 3 or 4 and found only some annotations and interfaces.
Jnag is composed of a few modules, you saw 1 jar for each of them. Their content is described at the beginning of the documentation. You probably opened the module that contains the annotations and interfaces that are used to decorate the network interfaces.
Ok, then, back to the website. I found a link to some source, clicked on examples, and began expanding a bunch of Maven format directories, waiting for the whole page to refresh (slowly!) with each click. After 8 painfully slow clicks, I find two interfaces: EchoClient and EchoServer. My god this shouldn't be so hard.
The part of Kenai which serve the sources on a per file basis is very slow, you chose the worst way to read the sources. The best way is to use Mercurial and clone the whole repository. The second best way is what you did early, to download the sources from the download section.
It appears to be an RMI library.
An RPC library, precisely.
Can you serialize types other than primitives, Arrays, Lists, Sets, Maps, and Enumerations?
Not at the moment, but this is easily to add. (added to the todo list for the 1.2.2 release, thanks).
How efficient is the bandwidth usage?
The parameters are not currently compressed, but only raw data is transmitted, no type. You also need to count 4 bytes for the target object if you choose to use Jnag without the @Singleton annotation (using the annotation, it is zero bytes), and for the method ID, I would say that in most cases only 1 byte is needed.
How many bytes does it take to call a method with one int parameter that returns an int? Do method invocations on a proxy object block while the remote method is being invoked? Do you support non-blocking? Are you using NIO?
The library is doing asynchronous messages, they are going in 1 way only, and the program doesn't block when you call a function on a proxy.
Seemingly hidden at the bottom of the first wiki page is a link to "Documentation", which takes me to a ton of information. I definitely think you should make this more prominent!
he he ... I am a programmer, not a designer :p
How would you organize it?
It looks like an interesting library.
If I were to sit down and make use of it, I'd read all the documentation, but since I'm just giving it a "once over", I basically skim the example code. I think I have a reasonably good idea of what you are doing. I think it would help if the example code started simple and built up to the more advanced usage. Currently I feel sort of thrown into the advanced bit before I can really understand what is going on.
True. I need to create more samples, 1 for each feature.