Hello everyone,
this is so cool, I thought I'd share it with you.
We've managed to set up an environment in which udig runs as a server. 
Currently we're using it for map generation. That is, we take WMS 
requests and forward it to udig, which renders and delivers the map. 
In other words, we're written a uDig WMS without writing hardly any 
code at all! (In practice, our project has other requirements on the 
server - dynamic styles, dynamic layers - but that's already a good 
start.)
The whole stuff is running in Eclipse's OSGi container. We also use 
uDig as an authoring tool to "set up the WMS", that is, define the 
layers and their styles. From that on, the osgi bundle takes control, 
and delivers maps without you noticing it's not a "real" WMS. (Off 
course, not all operations are implemented and thus, it's not an 
OGC-conform WMS, at least not yet :-)
The only thing we changed in the code was a call in 
ProjectRegistryImpl.getProject(URI):
PlatformGIS.syncInDisplayThread(new Runnable() { ...
was substituted by a
  Runnable run = new Runnable() {
...
};
new Thread(run).start();
as there's no display and the method 
PlatformGIS.syncInDisplayThread(new Runnable) never returns (I think).
So far only tested on Windows XP, Eclipse 3.4.1, and the JRE from the 
udig site. Target platform will be Linux. If you want more details, 
please let me know.
Anyway, my compliments for your guys. (Really, we only wrote a mini 
servlet, all the code is yours!)
Cheers,
Ugo