Excellent Job.
JDom can be a redondency and classes of course but you can merge them in one main component and considerating the others components as extensions of the softaware.
What is good with splitting is that you can regenerate only a part and keep the other parts.
Keep up the good work.