Skip to content

GSIP 52

Jody Garnett edited this page Jul 12, 2017 · 1 revision

GSIP 52 - Refactor out DAO for Catalog and Configuration

Overview

Creating a DAO interface for Catalog and Configuration interfaces.

Proposed By

Justin Deoliveira

Assigned to Release

2.1-beta2

State

Under Discussion, In Progress, Completed, Rejected, Deferred

Motivation

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.

Proposal

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: * CatalogDAO * GeoServerDAO

With these two interfaces the next step is to factor out code from the current CatalogImpl and GeoServerImpl implementations into two default dao implementations. * DefaultCatalogDAO * DefaultGeoServerDAO * CatalogImpl * GeoServerImpl

The entire patch can be found on github .

Feedback

Backwards Compatibility

The existing Catalog and GeoServer will remain the same. The refactor will be 100% backwards compatible.

Voting

Andrea Aime: +1 Alessio Fabiani: +1 Simone Giannecchini: +0 Ben Caradoc Davies: Jody Garnett: +1 Mark Leslie: +1 Rob Atkinson: +0

Links

JIRA Task Email Discussion Wiki Page

Clone this wiki locally