deegree3 developer team meeting (2009-12-15)
Protocol by: MarkusSchneider
The WMS now uses a more scalable and efficient way to retrieve the features it needs for rendering from the FeatureStores. This includes two changes:
Queries for all feature types are aggregated into a single FeatureStore#query() method call, so an SQL-store can fetch all required features using a single SELECT statement.
Features are not returned as a collection anymore, but as a FeatureResultSet which provides iterative access to the individual feature (streaming).
The rendering code fixes some ugly artefacts that occurred when using line styles with a rather big perpendicular offset and small cavities in the course of the line.
Several changes make the raster API faster and more memory efficient. A major new feature is the transparent caching that creates a tiled version of the input file in temporary storage, filling the tiles on demand. As a demonstration of the improved memory efficiency, Rutger reported that the writing of 24,000 x 8,000 raster as a TIFF image is now possible using just the main memory for the raw data (about 700 MB).
The WFS 1.0.0 CITE compliance has been improved, but not all tests pass yet. During this process, also the 1.1.0 mode received a bugfix. The GetFeatureHandler has been rewritten, as it became more and more convoluted.
TempFileManager is a new utility class in the commons package that provides individual temp directories for each running deegree instance. The major use case is using deegree in multiple webapps: The !OGCFrontController initializes the TempFileManager with the name of the webapp context. This ensures that after a servler container restart, a deegree webapp still works on the same temp directory, which is important to ensure that feature locks survive such a restart. A remaining issue is the providing of unique directories for deegree applications that are not webapps. Currently, a UUID is generated in this case which is used as part of the temp directory name. This solution works o.k., but does not start with the same directory in consecutive runs.
A CoordinateFormatter interface has been added and should be used by the GML/WKT writers to customize the number format for coordinates and especially limit the number of decimal places to a sensible amount. An idea has been discussed to set the number for the decimal places automatically based on the unit of the coordinate system axes (e.g. three places for meter-based axes, which should be sensible for most applications).