I started working on my second practical course, the distributed clipboard.
I started by creating a small firefox plugin which uses java classes but I couldn’t get it to work. I thought about the firefox plugin idea again and realized that it would be much more comfortable to have it as a standalone java application. There are a few reasons for that which are browser independence, portability, maintenance, etc… So I created a java project and doing some experiments!
The project uses maven2 for lifecycle management. The maven-jar-plugin and the maven-assembly-plugin do a good job building the project and wrapping it up in a zip/tgz file. The jar is executable and should be executable by a double-click (assuming you have a JRE installed). The result is a portable software so users will be able to use it from a thumbdrive and give it to others easily.
Using java.awt.SystemTray and java.awt.TrayIcon I managed to put an icon in the system tray which allows quick and comfortable access to the software.
At the moment I am using a self implemented UDP-Multicast service discovery to demonstrate node discovery on the LAN but I will most likely switch to JmDNS in the next days. Here is a good comparison of java mDNS implementations. There is not much going on and JmDNS seems to be worth a try. If it works (not deadlocking like the blog-entry stated) I will remove my homebrew version and switch to this mDNS implementation.
I added DistributedClipboard on new Hudson CI and whenever there is something to build he’ll do so. You can find the hudson job here and download the 20 latest builds. I will let everybody know whenever there is something to try out.