When I started working on Project Fenix one of the things that impressed me was the size of domain model. Back then it contained about 9000 entities and was 17000 lines in size. It was (and still is) a monstrous file. But the worst part was the fact that the team was used to inspect the domain by reading text file. I remember a team member scrolling up and down the file finding entities and relations and me being a freshman in that team starting to feel a bit worried.
After a few weeks I started working in a confusing part of the domain, and I needed to see the domain represented graphically. Like always, I started writing code that solved my problem that time, then I generalized the solution and added some more code and the add some more, and some more and by the end of the weekend I’ve built what became Fenix Domain Browser.
The first version was written in a combination of perl and php (Perl for the DML parser and PHP for presentation) and generated graphs using Graphviz. After a few months I added some new features (UML graphs, mapping table resolution and printing).
However there were problems. Because the code that parsed the domain was written in a hasty weekend, it was so ugly and unreadable that I’ve placed a header in the file warning to abandon hope all ye who enter here:
Most changes introduced in DML weren’t being ported back to this parser and were a lot of bugs in it. A complete rewritten was needed but with my ill fated thesis and other projects that was delayed until now.
This new version is a complete rewritten in Java and GWT, it uses the DML parser to parse the files, so new changes introduced into DML are automatically supported. It also has support for any Fenix Framework Domain and a new interface:
Fenix Domain Browser is available at https://fenix-ashes.ist.utl.pt/fdb/ and the source code is at https://github.com/nurv/Fenix-Domain-Browser.
If you need a small domain to test it, use this file.