aRSync is "Another RSync" and provides a pure java implementation of the rsync algorithm. This implementation is intended to be ready to use for file transfer, to be easy to extend for further use cases and - most important - to become productive.
Gotta say the interface is simple, the implementation is simple but intuitive, and it works. I do wish there was some documentation as I'm worried about using this on more 'real' data, but a few tests should prove out what the backup/merge options accomplish. Good stuff.