From: Ben Caradoc-D. <Ben...@cs...> - 2008-11-11 02:14:08
|
Andrea Aime wrote: > First a question, is does data access finder pick up data stores too? > It should, since a DataStore is a DataAccess. This is not a given (I don't think SPI considers inheritance), but it should work because DataAccessFinder.getAllDataStores goes out of its way to call DataStoreFinder to get all the DataStoreFactorySpi implementations as well as the DataAccessFactory implementations. > If so, I guess a limited patch could do the job: most of the > code accesses the catalog in search of a FeatureSource/Store, > and DataAccess provides them, so most of the intermediate code, > that is, the code that builds up queries, maps and the like > should keep on working untouched. We will also need to get the web configuration interface to ignore DataAccess implementations until it can handle them. > What needs modifications is whatever deals with FeatureType and > Feature, and there we have to be very very careful, to avoid > putting the code into silly slow code paths when that is not > necessary (my expectations are that the careful part will have > to be Feature manipulation, FeatureType wise it'll be slower > but not to a point it can be noticed). Would you be happy with instanceof tests, or can you recommend a better pattern? Strategy, perhaps? > So what I'd like to see is a set of incremental (small) patches > that do unlock the usage of DataAccess and complex features > one bit at a time, going up from the catalog unto the > output producers. > It would be nice if each patch could be reviewed and then > committed. > I also expect to see tests, so that we can prove stuff > is working and will keep on working as GeoServer evolves. For testing purposes, it might be necessary to write a skeletal (for example) TestDataAccess, so that GeoServer does not depend on app-schema. In fact, this is where we should start (test-driven development). > Can the complex data store be used on top of one or more property > data stores? This is how we do functional testing now, and > works very nicely because there is no need to setup external > databases. Yes. It uses any DataStore. Most of the app-schema unit tests use property files. Kind regards, -- Ben Caradoc-Davies <Ben...@cs...> Software Engineer, CSIRO Exploration and Mining Australian Resources Research Centre 26 Dick Perry Ave, Kensington WA 6151, Australia |