I have mentioned before that I think circular dependencies are evil and should be avoided, especially between packages. In fact, I had this very discussion the other day at work.

What started this conversation was that I have started analysing our source code with a nifty new tool called Pasta from Compuware which is a Package Structure Analysis Tool. It takes a little getting used to but is excellent.

It sure beats JDepend for ease of use, and unfortunately Metrics does not work with Eclipse 3.0 M6.