On Thu, 1 Oct 2015 10:04:28 AM Andrea Aime wrote:
> On Thu, Oct 1, 2015 at 7:42 AM, Brad Hards <[email protected]> wrote:
> > That does appear to work, but its way too slow - it makes the WMS module
> > build 6 times slower.
> > 
> > So I'm thinking of caching results. However I need guidance on whether the
> > supported codes can possibly change at runtime? If it can change, can it
> > change in such a way that an existing EPSG code might stop or start
> > working?
> > Or will any runtime changes only be new codes?
> 
> Not at runtime, but there is an  issue, the data dir used in tests
> is destroyed and rebuilt at every test run (for each class, not method).
I'm less concerned that tests are slow, but more concerned that 
GetCapabilities becomes slow in production.

If we create the list at startup, there still could be some way to get 
reasonable speed for subsequent calls. Maybe a singleton that has the server-
wide list (Set<String>) of CRS codes that work.

> We could create a blacklist in the user_projections storage, that also has
> its own
> problems though, as supported EPSG codes evolve over time, and the data
> dirs are long lived.
> 
> > The other approach is to thin the list of codes that are provided by
> > GeoTools
> > to only those that will work (by a combination of removing those that can
> > never be supported by decode(), and fixing the cases that could be
> > supported). The problem is that it might still have plugged-in that are
> > not
> > supportable, and there is a gap between "never supported" and "works
> > perfectly".
> 
> Right, that is another issue, everything in the projection subsystem is
> pluggable,
> which makes it hard to setup a query that would return only what's
> supported.
> I have witnessed installations that had custom plugins with extra
> projections
> support compared to the base GeoServer, for example.
Presumably those custom plugins work though, so the blacklist (or whitelist by 
exception) would only apply to those that we "know" about. Are the custom ones 
in the EPSG namespace?
 
> > Another variation would be to have a whitelist of codes that are expected
> > to
> > work. That whitelist could be represented in GeoTools by a new function
> > (like CRS.getDecodeableCodes(String authority) or similar). That would be
> > a maintenance burden, and we'd lose support for things that might work.
> > 
> > Any suggestions?
> 
> Err... I'm not sure I have a good solution... time ago there was this
> suggestion
> to have the WMS caps only report the list of CRS that are actually in use,
> plus some well known ones (e.g., 3857).
> This could be a flag in the WMS configuration, enabled by default in the
> release
> data directory.
So the "Limited SRS list" would be the default. We could do a subset with no 
code changes, just by modifying the data dirs. 

It would need to cycle through all the layers to find out the CRS that are in 
use though.

Brad

------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to