I am trying to study dotCMS these days .. Although I face A lot of problems. The first problem its lake of documentation. Which forced me to navigate through the dotCMS Code. Finally, I got the Idea of reverse engineering the dotCMS Code to UML Which is petter for understanding of course.. ( A Picture is Better than 1000 Words ) …
What I Wanned a diagram show the connections between classes. What are the main classes ? what are the derived ones ? Where to edit if I am gonna edit..? I Just wanned to understand it.
I tried these software … to reverse engineer the .java source files to UML Diagrams …
1- Netbeans ( The Great )
2- Posidion UML Professional
3- Rational Rose
4- Lots others …
the only 1 could work fine. were Netbeans. and Not from the first time ….. as DotCMS Got more than 3000 Files … to be engineeringly-reversed most of UML applications crash with lake of memory … or can’t handle or some other stuff ….
Or some programs try to get around the creation of 1 big diagram for all classes..and just create a diagram for each package … How will I Understand then !!! the connection between classes ???!!!!!
Netbeans could do it …. but I had to edit in its configuration file exists in etc/netbeans.conf … adding -J-Xmx1300m to be able to get around the memory limitation ….
although, I faced a problem that making the max memory allocated more than 1300 won’t make netbeans open at all !! It worked fine with 1300m ..
Then I reversed engineer the source files *.java in dotCMS Project … src directory ….
then cerated a diagram for all classes and packages …
What Made me really get frustrated is that I can’t find ( Expand All )Option in the menu of the project window … Everytime I want to select all classes I must expand them manually !!!!!!!!!! .. That really bugged me !!…..
But, Finally It worked fine ,, and I am currently understanding the project ..which I found really interesting..
DotCMS Uses Struts, opensymphoney, lots of other technologies … I really Like this system …. and lots of portals are there !! ….
Its a nice project for those who like to read codes
…