P2P and JXTA woes: "For some time I’ve been working on a project that will involve a P2P sharing of content. All I really want to do is to lookup some peers in the network and share some bytes without having to worry about NATs and such. Googling has revealed only two P2P libraries that could be usable for me; JXTA and gnutella implementation from com.limeware. I’ve quickly gave up on later since it is GPL licensed and this is commercial project. JXTA, what can I say… It is big. It looks like it could do the work. It is strange. JXTA people speak some strange abstract language that is really hard for me to understand. There is net, world, boot, std, platform and generic peer groups that differ in some subtle ways. To make it more fun, peer groups aren’t REAL (what ever that means) all you have is Advertisement, which also has about dozen various subclasses and is very important. There are also Pipes (of various kinds), Peers, RandezVous, SRDI, xindice (not to be confused with jakarta one), few CM some things, Document, Codats, Modules, Services, Applications, Memberships, IDs, Routers, Relays, Protocols etc. All this worthy abstractions are tangled in some complex and exciting ways that require ubercoder to make use of it. Every few days I try to be that ubercoder but after hour or so with JXTA my legs start to feel weak and then I go to work on something else. Is there any other Java P2P library for a lesser mortal to make use?"