Creating a DAO interface for Catalog and Configuration interfaces.
Under Discussion, In Progress, Completed, Rejected, Deferred
The idea is to be able to support different backend storage formats for the catalog and configuration. The current in memory implementation has a number of drawbacks. The most notable being that it is memory bound which means it can not scale up to many many layers.
Currently the Catalog and GeoServer interfaces encapsulate everything from data access, events, and validation. Factoring out dao interfaces for only data access make it easier for new implementations to come forth, and reduce logic and duplication between different backend implementations.
The idea is to create two new interfaces called CatalogDAO and GeosrverDAO. Which will emcompass all data access operations for the Catalog and GeoServer interfaces respectively.
The proposed new interfaces can be found here:
With these two interfaces the next step is to factor out code from the current CatalogImpl and GeoServerImpl implementations into two default dao implementations.
The entire patch can be found on github.
The existing Catalog and GeoServer will remain the same. The refactor will be 100% backwards compatible.