Oh I hate making these decisions!
A very important component of my distributed debugger is its process management infrastructure. Its main role is managing (launching/killing) remote processes and communicating with their interfaces - which means communicating with remote graphical interfaces and redirecting stdin, stdout and stderr to the debug server.
However, the way this infrastructure is currently built (on top of SSH), doesn't allow it to do everything it's supposed to. Killing "disconnected" processes is particularly painful, since I communicate with the SSH client via string parsing and an Expect Tcl/Tk script. Yuck. String parsing is extremely unreliable. I wasn't caring much about this issue (since JDI allows me to kill remote machines), but now that I'm writing distributed tests for the debugger I must correct this.
I need to use SSH because I must be able to import remote graphical interfaces (I could do it with pure X, but SSH and firewalls are almost standard in Linux machines these days). Anyway, after taking a look at the DSDP-TM project I realized they're building a framework to do just what I need. Still, I can't decide in favor of its adoption.
Here are the forces:
- DSDP-TM seems kind of immature.
- I don't know if I can use it on top of SSH in the way I need.
- I have already integrated my configuration modules with my launch infrastructure through the Eclipse Launch Framework, which means I'd have to do it all over again (have no idea if this would be easy or difficult).
- I think I can code up and debug a small wrapper process for redirecting stdin/stdout/sterr, collecting lifecycle information, and responding to keep alive events in a day or two.
- It would be great to be an early adopter of an Eclipse subproject. I could contribute and maybe even help shape its future.
- I don't know if I have enough time to spend learning about DSDP-TM. I must complete my milestones on schedule.
- DSDP-TM is tied to Eclipse 3.2, which was a bit too buggy for adoption last time I checked.
Oh, man. What should I do?