I've looked at the source a couple of times, but never got that far with it, due to the extreme lack of documentation. Here's some help in the form of a free tool, Doxygen, which we use at work a fair bit. It makes things *much* easier.
Doxygen creates html documentation from the source code and has a diagram drawing add-on, which draws class diagrams (showing the full inheritance tree), collaboration diagrams (showing direct inheritance plus what classes use what other classes), call dependency graphs, include graphs etc.
It works pretty well out of the box (you can expect to be up and running in under an hour), but a little bit of configuring makes it really nice (a lot of the diagrams and nice features are switched off by default).
It automatically pulls any doxygen header comments out and puts them in the documentation against the class/method/field they apply to -really neat. But even without the comments (Spring is a bit short of comments) the documentation it produces is very useful.
The thing that makes it great is all the hyperlinks. You can click on any box in any diagram and it'll take you to the documentation for that item. It also links you in to a syntax highlighted version of the source code (this is one of the features which is switched off by default - don't ask me why!), which again is full of iinks back to the documentation - making it very easy to traverse around the code and find out what on earth is going on.
It basically makes the code a lot more accessible.
You can download Doxygen from here: http://www.doxygen.org
The add in which you'll need to get it to draw the diagrams (again off by default) can be downloaded from here:
http://www.graphviz.org/
I'm happy to upload a configuration file with all the sensible stuff switched on if people would like me to. The default settings really are a bit mad! There is a wizard with excellent tool tips to help you get set up though, but some of the options you really want switched on are easy to miss when you first start using the tool.
What would be really great is if the Spring website could host the doxygen documentation for the code to amke it accessible to all - Who would I ask about that? It even comes with a built in search facility for when it's deployed on a webserver.
Cheers
Munch
PS Did I mention the todo list organiser? If you put a
Code: Select all
/todo
Code: Select all
@todo