Hi all,
So as many know in order to pull off the dbconfig module much of the core catalog and config has had to be refactored. The end of goal of which is to factor out all data access from the Catalog and GeoServer implementations, and instead encapsulate data access behind a dao interface. The latest version of the patch has been posted here:
http://jira.codehaus.org/secure/attachment/51460/GEOS-3806.patch
Great thanks again to Emanuele for his initial versions of the work.
So the patch as you can imagine is rather large. But I will summarize the main points of it here:
- CatalogDAO and GeoServer DAO interfaces created, with DefaultCatalogDAO and DefaultGeoServerDAO as default implementations respectively
- Data access code factored out of CatalogImpl and GeoServerImpl and put into the default daos
- Some minor catalog/config bean tweaks, implementing equals()/hashcode(), adding default constructors, etc…
- GeoServerLoader refactored to allow for subclasses to override startup loading behaviour. GeoServerLoaderProxy is not registered with spring and loads a GeoServerLoader
instance based on the spring configuration, falling back on DefaultGeoServerLoader which implements the default startup we have today - XStreamPersister modified to handle different implementations of List, Set, etc… For instance in cases such as hibernate that creates custom collections. It know is lax and
simply works against the Collection interfaces not worrying about specific implementations of a collection - GeoServerTestSupport modified to reflect the changes made to GeoServerLoader
- GeoServerImplTest and CatalogImplTest modified to allow for subclases. Also removed some bad assumptions that assumed an in memory implementation of the catalog/config
And that is the bulk of it
Feedback and comments very welcome. If there are no objections I would like to commit the patch early next week.
And of course all test cases pass (including extensions) and all cite tests pass.
Thanks!
-Justin
–
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.