Hi,
In an attempt to build an informed opinion about the recent package
renaming proposals I started thinking about the various internal package
dependencies in Jackrabbit. At least the o.a.j.core packages are quite
heavily interlinked with each other.
I tried creating a semi-automated package diagram for Jackrabbit, but at
least at the moment there seems to be too many interdependencies to
produce a good overview diagram. The result of a fully automated run can
be found at http://yukatan.fi/2005/09/jcr/jackrabbit-dependencies.png. :-)
Some immediate observations:
* Move the QName constants from o.a.j.Constants to o.a.j.name.QName to
break the o.a.j <-> o.a.j.name dependency cycle.
* Add a BlobFileSystem property to PMContext to break the direct
LocalFileSystem dependencies in the persistence managers.
* Move the PersistenceManager, QueryManager, etc. interfaces and
associated component classes into one or more separate packages
(I think this was the idea of the .api proposal)
What do you think?
BR,
Jukka Zitting