ingo@1124: 2010-06-04 Ingo Weinzierl ingo@1124: ingo@1124: * src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java: ingo@1124: The ehcache CacheManager and the MBeanServer of the JVM are connected ingo@1124: so that the statistics of the sql-cache is available as MBean using ingo@1124: JConsole. ingo@1124: ingo@1123: 2010-06-04 Ingo Weinzierl ingo@1123: ingo@1123: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Uncacheable.java: ingo@1123: A new marker interface. It should be implemented by objects that should ingo@1123: not be cached. ingo@1123: ingo@1123: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/UncacheableSDEResultSet.java: ingo@1123: A new SDEResultSet class that implements Uncacheable. Currently, it is ingo@1123: used for raster elements returned from ArcSDE. ingo@1123: ingo@1123: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java: ingo@1123: Raster elements are put into an UncacheableSDEResultSet container. This ingo@1123: has the effect that raster elements are not cached. ingo@1123: ingo@1123: * src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java: ingo@1123: Only objects that do not implement Uncacheable will be cached. ingo@1123: ingo@1122: 2010-06-03 Ingo Weinzierl ingo@1122: ingo@1122: * src/main/java/de/intevation/gnv/geobackend/config/Configuration.java: A ingo@1122: global configuration for this geo-backend. Before using the geo-backend, ingo@1122: it is now necessary to create an instance of this class and call its ingo@1122: initialize(.) method. This method currently takes the following arguments: ingo@1122: ingo@1122: - conf: an xml document that should contain a node named 'geo-backend' ingo@1122: that contains all configurations required by the geo-backend. ingo@1122: - configDir: the absolute path to the root configuration directory that ingo@1122: might contain further configuration files. ingo@1122: - placeholder: the placeholder string that is used in the central config ingo@1122: file to replace the path to the configuration directory. ingo@1122: ingo@1122: Furthermore, this Configuration is used to initialize the so-called ingo@1122: 'sql-cache' that caches sql statements - it has been configured via system ingo@1122: properties until now. ingo@1122: ingo@1122: * src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java, ingo@1122: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java: ingo@1122: The sql-cache configuration is not read from system properties but from ingo@1122: global configuration now. ingo@1122: ingo@1121: 2010-06-03 Ingo Weinzierl ingo@1121: ingo@1121: * src/main/java/de/intevation/gnv/geobackend/util/XMLUtils.java: Some ingo@1121: functions to handle xml stuff. ingo@1121: ingo@1120: 2010-05-31 Ingo Weinzierl ingo@1120: ingo@1120: * src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java: ingo@1120: Show the execution time of a database query as INFO log. ingo@1120: ingo@898: 2010-04-28 Ingo Weinzierl ingo@898: ingo@898: * Changes, NEWS, ChangeLog: Summarized changes. ingo@898: ingo@897: 2010-04-28 Ingo Weinzierl ingo@897: ingo@897: * src/test/java/de/intevation/gnv/geobackend/base/query/cache/CacheCleanerTestCase.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/base/query/cache/CacheCleaner.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutor.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/sde/datasources/exception/DatasourceException.java, ingo@897: src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java: Removed ingo@897: trailing whitespace. ingo@897: tim@896: 2010-04-20 Tim Englich tim@896: tim@896: * src/test/ressources/QueryExecutorTestCase.properties, tim@896: src/test/java/de/intevation/gnv/geobackend/base/query/cache/CacheCleanerTestCase.java: tim@896: Integrated Testcase for testing the Basefunctionality of the CacheCleaner. tim@896: tim@895: 2010-04-20 Tim Englich tim@895: tim@895: * src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java: tim@895: Integrated the initialization of the CacheCleaner if an SQl-Cache is used. tim@895: Also implemented the Method for CleanUp the SQL-Cache in the extended tim@895: QueryExecutor. tim@895: tim@895: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java, tim@895: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutor.java: tim@895: Extended Interface adding an Method that should do the Cleanup of the tim@895: SQL-Cache. tim@895: tim@895: * src/main/java/de/intevation/gnv/geobackend/base/query/cache/package.html: tim@895: Added Documentation. tim@895: tim@895: * src/main/java/de/intevation/gnv/geobackend/base/query/cache/CacheCleaner.java: tim@895: Added Threadimplementation that looks every n-Seconds into the Database tim@895: if there are Tables that where updated during the Time to the last Cleanup. tim@895: If there are Tables that has been modified the CacheCleaner will call the tim@895: used QueryExecutor. The Queryexecutor will clean up it's Cache using the tim@895: Names of the affected Tables. tim@895: It is Possible to configure the Interval between two cleanups. for this tim@895: you have to set the Systemproperty -Dcaching.cleaner.interval using Seconds tim@895: as unit. tim@895: sascha@894: 2010-04-16 Sascha L. Teichmann sascha@894: sascha@894: * src/main/java/de/intevation/gnv/geobackend/base/connectionpool/exception/ConnectionException.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ColDefinition.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ResultSet.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/exception/DatasourceException.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/sde/datasources/exception/TechnicalException.java, sascha@894: src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java: sascha@894: Using unix line endings only. sascha@894: sascha@893: 2010-04-17 Sascha L. Teichmann sascha@893: sascha@893: * src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainerFactory.java: sascha@893: Removed trailing whitespace. sascha@893: tim@891: 2010-04-13 Tim Englich tim@891: tim@892: * src/main/java/de/intevation/gnv/geobackend/base/query/package.html, tim@892: src/main/java/de/intevation/gnv/geobackend/util/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/sde/datasources/exception/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/sde/datasources/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/sde/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/query/exception/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/query/container/exception/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/query/container/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainerFactory.java, tim@891: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java, tim@891: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/exception/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/package.html, tim@891: src/main/java/de/intevation/gnv/geobackend/base/package.html: tim@891: Added more Javadoc. tim@891: tim@890: 2010-04-13 Tim Englich tim@890: tim@890: * src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java, tim@890: src/main/java/de/intevation/gnv/geobackend/base/Result.java, tim@890: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java: tim@890: Modified some JavaDoc so that the Warnings that where caused by mistakes tim@890: are removed. tim@890: tim@889: 2010-04-13 Tim Englich tim@889: tim@889: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java, tim@889: src/main/java/de/intevation/gnv/geobackend/base/Result.java, tim@889: src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java, tim@889: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ResultSet.java, tim@889: src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java: tim@889: Modified some JavaDoc so that the Warnings that where caused by mistakes tim@889: are removed. tim@889: sascha@888: 2009-03-29 Sascha L. Teichmann sascha@888: sascha@888: * src/main/java/de/intevation/gnv/geobackend/**/package.html: New. sascha@888: Added package description with text 'DOCUMENT ME!'. sascha@888: sascha@887: 2009-03-29 Sascha L. Teichmann sascha@887: sascha@887: * src/test/java/de/intevation/gnv/geobackend/**/*.java: sascha@887: Bring @author javadoc tags in form '@author John Doe' sascha@887: sascha@887: find -name \*.java | \ sascha@887: xargs sed -i \ sascha@887: -e 's/@author[ ]\+\([^(<]\+\)[<(]\([^>)]\+\)[>)]/@author \1<\/a>/g' \ sascha@887: -e 's@[ ]\+@@g' sascha@887: sascha@885: 2009-03-29 Sascha L. Teichmann sascha@886: sascha@886: * src/main/java/de/intevation/gnv/geobackend/**/*.java: sascha@886: Ordered imports. Removed empty headers. sascha@886: sascha@886: 2009-03-29 Sascha L. Teichmann sascha@886: sascha@885: * src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java, sascha@885: src/test/java/de/intevation/gnv/geobackend/base/query/ToCharSample.java, sascha@885: src/test/java/de/intevation/gnv/geobackend/base/query/GroupBySample.java, sascha@885: src/test/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnectionPoolTestCase.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainerFactory.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/ConnectionPoolFactory.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/ConnectionPool.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/base/ResultDescriptor.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEResultSetMetaData.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/util/BlockCollection.java, sascha@885: src/main/java/de/intevation/gnv/geobackend/util/RedundancyRemover.java: sascha@885: Removed trailing whitespace. sascha@885: find -name \*.java | xargs sed -i 's/[ \t]\+$//' sascha@885: tim@883: 2010-03-26 Tim Englich tim@883: tim@884: * src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java, tim@884: src/main/java/de/intevation/gnv/geobackend/sde/datasources/exception/*.java, tim@884: src/main/java/de/intevation/gnv/geobackend/sde/datasources/*.java, tim@884: src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java, tim@884: src/main/java/de/intevation/gnv/geobackend/base/query/exception/QueryException.java, tim@884: src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java, tim@884: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/exception/ConnectionException.java, tim@884: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/ConnectionPoolFactory.java, tim@884: src/main/java/de/intevation/gnv/geobackend/base/*.java: tim@884: Updated Javadocs to the Listed Classes. tim@884: Also done some Codecleanup and removed unused Methods from the Code. tim@884: tim@883: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnectionParams.java: tim@883: Removed unused Class ArcSDEConnectionParams. tim@883: tim@882: 2010-03-26 Tim Englich tim@882: tim@882: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Datasource.java: tim@882: Removed unused Class Datasource. tim@882: tim@881: 2010-03-26 Tim Englich tim@881: tim@881: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/DatasourceConnection.java: tim@881: Removed unused Class DatasourceConnection. tim@881: tim@880: 2010-03-26 Tim Englich tim@880: tim@880: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java: tim@880: Removed unused Class SDEQuery. tim@880: tim@879: 2010-03-16 Tim Englich tim@879: tim@879: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java (createPoints): tim@879: Now it is also possible to extract Points from a given LineString. tim@879: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@879: Added Support for SpatialQueries using LineString as Geometry of Interest. tim@879: tim@877: 2010-03-12 Tim Englich tim@877: tim@878: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@878: Added support for MultiLineString-Geometries. The Points do not belong to one tim@878: Geometryelement. We have to lookup if the Geometry is Multiparted. tim@878: If it is we have to split the Points into several LineStrings which belongs tim@878: to one MultiLineString. tim@878: tim@878: 2010-03-12 Tim Englich tim@877: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEResultSetMetaData.java (getColumnClassName): tim@877: Added more ClassName identificaton for the different datatypes of the ArcSDE. tim@877: Now it is possible to distinguish between Integer, Long, String, Date, tim@877: Float and Double Objects. tim@877: This is required to get a valid Shape- and WMS-Export. tim@877: tim@876: 2010-03-09 Tim Englich tim@876: tim@876: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@876: Switched to using asText(...)-Function of SeShapes-Objects for generating tim@876: an WKT-String for Polygons. Going this way we are able to produce valid tim@876: WKT for all kinds of Polygons deliverd by the ArcSDE. tim@876: We cannot use this Method for Points and LineStrings because the WKT tim@876: which will be produced is invalid e.g. Point Z (...) LineString m (...) tim@876: I didn't find Invalid WKTs for Polygons which in Database-Rables we are tim@876: using right now. tim@876: tim@876: It has to be monitored if there are Polygons in the Database which will tim@876: produce invalid WKT-Strings. tim@876: tim@661: 2010-03-08 Tim Englich tim@661: tim@661: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@661: Implemented Support of MultiPolygons. The Points do not belong to one tim@661: Geometryelement. We have to Lookup ifthe Geometry is Multiparted. tim@661: If it is we have to split the Points into several Polygons which belongs tim@661: to one Multipolygon. tim@661: This Fix solve did not solve any Parsingerros. Some geometries are still tim@661: corrupt. tim@661: tim@660: 2010-03-08 Tim Englich tim@660: tim@660: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@660: Added Suport for the Geometrytyp SimpleLine. tim@660: SimpleLine will be handled as an Line. tim@660: ingo@659: 2010-02-05 Ingo Weinzierl ingo@659: ingo@659: Issue170 ingo@659: ingo@659: * artifact-database/pom.xml: Changed log4j version to 1.2.14 (later version ingo@659: causes errors and breaks while maven build process). ingo@659: tim@658: 2010-02-05 Tim Englich tim@658: tim@658: * pom.xml: tim@658: Changed from ArcSDE version 9.2.5 to Version 9.3 tim@658: You have to Install the required Libraries as described in tim@658: https://bsh-intern.intevation.de/Mavenbuildprozess tim@658: hans@556: 2010-01-27 Hans Plum hans@556: hans@556: RELEASE 0.4 hans@556: hans@556: * Changes, NEWS, ChangeLog: Summarized changes. hans@556: sascha@555: 2009-01-25 Sascha L. Teichmann sascha@555: sascha@555: Fix for gnv/issue107 sascha@555: sascha@555: * src/main/java/de/intevation/gnv/geobackend/util/RedundancyRemover.java: sascha@555: New. Used to reduce the redundancy of data in SQL result sets. Column sascha@555: values are very distinct so the degree or redundancy is very high. E.g sascha@555: the SDE produces for each date value a java.util.GregorianCalendar object sascha@555: which are very heavy weighted. We only use them r/o so we can hash each date sascha@555: value to one unique representative. Same logic applys to integer values sascha@555: and so on. sascha@555: sascha@555: With this technique we are able to reduce the memory consumption by sascha@555: over 90%. Because it is not very feasible to store the whole history sascha@555: of column we only have a limited number of cached values per column. sascha@555: This is controlled via the system property sascha@555: "de.intevation.gnv.geobackend.util.RedundancyRemover.lookback" which sascha@555: defaults to 1029. sascha@555: sascha@555: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java: sascha@555: Use RedundancyRemovers to filter the incoming traffic from SDE. sascha@555: tim@554: 2010-01-26 Tim Englich tim@554: tim@554: * src/test/java/de/intevation/gnv/geobackend/base/query/ToCharSample.java : tim@554: Added Sample for bug in ArcSDE 9.3 using to_char-Function with SpatialQuery tim@554: * src/test/java/de/intevation/gnv/geobackend/base/query/GroupBySample.java : tim@554: Added Sample for Bug in ArcSDE using group by with SpatialQuery tim@554: sascha@553: 2009-01-25 Sascha L. Teichmann sascha@553: sascha@553: Another attempt to fix gnv/issue34 sascha@553: sascha@553: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java: sascha@553: Add a toString() method. sascha@553: sascha@553: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java: sascha@553: Added an idle time detection mechanism. You can call touch() on sascha@553: a connection to refresh the internal timestamp and ask with isActive() sascha@553: if a constructor given time interval in milliseconds is exceeded. sascha@553: sascha@553: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java: sascha@553: Added a check of inactivity to validateObject() before relying on SDE logic. sascha@553: This is the last line of defence if the testServer() call is going not to respond. sascha@553: This duplicates the eviction policy of Apache Commons pool a bit but I found sascha@553: this way to be more trustworthy. sascha@553: sascha@553: The idle time is configure with the property 'serverInactiveInterval'. sascha@553: units: seconds. Defaults to 5 minutes. sascha@553: sascha@553: The unit of 'serverRoundtripInterval' (parameter of testServer()) is now sascha@553: in seconds, too. Default: 5 seconds. This is the value used in GeoTools. sascha@553: sascha@552: 2009-01-09 Sascha L. Teichmann sascha@552: sascha@552: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java, sascha@552: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java, sascha@552: src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@552: Cleanup imports. sascha@552: tim@551: 2010-01-15 Tim Englich tim@551: tim@551: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java (isValid): tim@551: Implemented the isValid-method of the ArcSDEConnection for tim@551: getting a propper Validation of the used SEConnection. tim@551: For the Validation the Method testServer of the SEConnection is used. tim@551: tim@551: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java (ArcSDEPoolableObjectFactory): tim@551: Added Member serverRoundtripInterval to represent the Time in tim@551: Milliseconds which is allowed to reused a returned Connection. tim@551: Also used Connection.isValid Method instead of Connection.isClosed tim@551: to validate the Connection befor it could be borrowed from the Pool. tim@551: sascha@550: 2009-01-12 Sascha L. Teichmann sascha@550: sascha@550: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@550: Added bicubic spline interpolation on raster tiles. This sascha@550: should increase the 'virtual' resolution more than the sascha@550: bilinear interpolation. To enable it write 'bicubic' into sascha@550: the configuration file. sascha@550: sascha@550: * pom.xml: Added dependency to Apache Common Math 2.0 for sascha@550: the cubic spline interpolation. sascha@550: sascha@549: 2009-01-09 Sascha L. Teichmann sascha@549: sascha@549: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@549: Added static method to fetch matching interpolation type for sascha@549: given string. Defaults to nearest neighbor if no string is matching. sascha@549: sascha@548: 2009-01-09 Sascha L. Teichmann sascha@548: sascha@548: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@548: Implemented bilinear interpolation. sascha@548: sascha@547: 2009-01-09 Sascha L. Teichmann sascha@547: sascha@547: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java: sascha@547: Fixed transformations to figure out the right tile in the SDE. sascha@547: Taking the tile origin into account now and does not do wrong rounding sascha@547: of column and row indices. Simplified the code a lot. sascha@547: sascha@547: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@547: Fixed access to right right pixel now. Removed the envelope code because sascha@547: its not needed any longer. You can ask a RasterObject directly now if sascha@547: a given coordinate is on the tile now. The tile space is now correctly sascha@547: spanned between (0, 0) and (tile width - 1, tile height - 1) now which sascha@547: allows other access patterns like bilinear interpolation. TODO: implement sascha@547: bilinear interpolation. sascha@547: tim@546: 2010-01-08 Tim Englich tim@546: tim@546: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java, tim@546: src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java, tim@546: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java, tim@546: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java, tim@546: src/main/java/de/intevation/gnv/geobackend/base/connectionpool/ConnectionPoolFactory.java (initializeConnectionPool): tim@546: Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant. tim@546: sascha@545: 2010-01-05 Tim Englich sascha@545: sascha@545: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java: sascha@545: Made it serializable to be cachable beyond reboot. sascha@545: tim@544: 2010-01-05 Tim Englich tim@544: tim@544: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (handleResultSet): tim@544: Switched to return the RasterObject instead of the depth in an Rasterquery. tim@544: This should help to get a better performance. tim@544: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/RasterObject.java (RasterObject): tim@544: Added new Object for Caching Rastertiles and all Informations that are tim@544: required for calculating the Depth to a given Coordinate. tim@544: tim@543: 2010-01-04 Tim Englich tim@543: tim@543: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (handleResultSet): tim@543: Added Rasterdatasupport to the ARCSDESTATEMENT. tim@543: Now it is possible to Query the Value of an Pixel like that: tim@543: SELECT ST_ASTEXT(RASTER) FROM MEDIAN.TOPO_BS_D_6X10SEC where INTERSECTS(RASTER, "POINT( 12.084721594184593 54.35583351483295)") tim@543: sascha@542: 2009-12-19 Sascha L. Teichmann sascha@542: sascha@542: * contrib/sql-cache.xml: Configured disk storage to survive restarts. sascha@542: sascha@542: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java: sascha@542: Added explicit shutdown hook. sascha@542: sascha@542: * src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java: sascha@542: Fixed spelling of cacheResults() which prevented results to be stored in cache. sascha@542: Added some logging. sascha@542: sascha@541: 2009-12-18 Sascha L. Teichmann sascha@541: sascha@542: Experimental caching of SQL results via Ehcache sascha@541: sascha@541: * pom.xml: Added dependency to Ehcache sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutor.java: sascha@541: Extended interface to support caching by SQL statements as Strings. sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java: sascha@541: Implements new interface with no caching sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainerFactory.java: sascha@541: synchronized access to singleton. sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java: sascha@541: calls caching methods of base class. sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java: sascha@541: When system property 'query.executor.factory' is given the value is used as sascha@541: a class name to be instantiated as a sub class of QueryExecutorFactory. sascha@541: This happens if the singleton of QueryExecutorFactory is created. With the sascha@541: mechanism it is possible to replace the standard behavior of creating QueryExecutors. sascha@541: sascha@541: * src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java: sascha@541: New: This class extends QueryExecutorFactory and can be used as replacement for sascha@541: the standard QueryExecutorFactory. Usage: sascha@541: sascha@541: -Dquery.executor.factory=de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory sascha@541: sascha@541: If you pass in another system property 'caching.query.executor.config' you can sascha@541: customize the caching. The value is used as a file name to an XML file with sascha@541: Ehcache configuration. sascha@541: sascha@541: * contrib/sql-cache.xml: Demo configuration for sql caching. Usage: sascha@541: sascha@541: -Dquery.executor.factory=de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory sascha@541: -Dcaching.query.executor.config=contrib/sql-cache.xml sascha@541: sascha@541: 2009-12-17 Sascha L. Teichmann sascha@385: sascha@385: RELEASE 0.3 sascha@385: sascha@385: * Changes, NEWS, ChangeLog: Summarized changes. sascha@385: ingo@384: 2009-12-17 Ingo Weinzierl ingo@384: ingo@384: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java: ingo@384: Fixed bug in DefaultResult when querying an index out of bounds. ingo@384: tim@383: 2009-12-15 Tim Englich tim@383: tim@383: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@383: We have to use a different SpatialFilter for Point in Polygon Queries as tim@383: in AreaIntersection Statements. tim@383: So we have to include a switch which will do that. tim@383: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java (createPoints): tim@383: Added Support of Point-Objects for the possibility to execute a Point in Pologon tim@383: Statement using the ArcSDE. tim@383: ingo@382: 2009-12-11 Ingo Weinzierl ingo@382: ingo@382: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java: ingo@382: DefaultResult will return null if it doesn't contain the specified column ingo@382: name in method getString(String columnName), instead of throwing an ingo@382: exception. ingo@382: sascha@381: 2009-12-11 Sascha L. Teichmann sascha@381: sascha@381: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java, sascha@381: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java, sascha@381: src/main/java/de/intevation/gnv/geobackend/base/query/container/DefaultQueryContainer.java: sascha@381: Removed needless imports. sascha@381: tim@380: 2009-11-30 Tim Englich tim@380: tim@380: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java, tim@380: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java, tim@380: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEResultSetMetaData.java, tim@380: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java: tim@380: Added missing Methodstubs for Java 1.6 compability. tim@380: ################################################### tim@380: ###### ATTENTION: ONLY USE JAVA 1.6 FOR THIS ###### tim@380: ###### AND ALL USING MODULES. ###### tim@380: ################################################### tim@380: tim@378: 2009-11-27 Tim Englich tim@378: tim@378: * src/test/ressources/QueryExecutorTestCase.properties, tim@378: src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java: tim@379: Revert Changes of the commit of Revision 377 which was unintended tim@378: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@378: Changed Splitalgorithm of Statements so that it is Possible to add to_date Colums into a Statement tim@378: with Spatial-Columns or Spatial-Filters tim@378: hans@279: 2009-11-13 Hans Plum hans@279: hans@279: RELEASE 0.2 hans@279: hans@279: * Changes, NEWS: Summarized changes. hans@279: hans@278: 2009-11-13 Hans Plum hans@278: hans@278: * Made some ChangeLog entries a bit clearer. hans@278: tim@277: 2009-11-10 Tim Englich tim@277: tim@277: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@277: Changed the splitting of the Statements for ARCSDE-Transformation. tim@277: Now it is possible to use a Select-Statement as an Table. tim@277: ingo@276: 2009-11-06 Ingo Weinzierl ingo@276: ingo@276: * target/**: Removed. Should not be in version control. ingo@276: tim@275: 2009-11-05 Tim Englich tim@275: tim@275: * src/test/ressources/QueryExecutorTestCase.properties, tim@275: src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithInnerSelect): tim@275: Added an Tescase to test the InnerSelect Statments in Spatial-Queries. tim@275: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@275: Bugfix. An Point could not have an Z-Coordinate-Value tim@275: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@275: Added the possibility to execute Spatial-Queries using InnerStatements instead tim@275: of WKT in Intersects-where-clauses. tim@275: tim@274: 2009-11-02 Tim Englich tim@274: tim@274: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java (createStatement): tim@274: Changed TODO to a question tim@274: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@274: CodeCleanup: Removed deprecated TODO tim@274: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java (getColumnIndex): tim@274: Removed Typo. tim@274: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java: tim@274: CodeCleanup: Removed deprecated TODOS and replace Tabs with whitespaces. tim@274: * src/main/java/de/intevation/gnv/geobackend/base/query/container/DefaultQueryContainer.java:, tim@274: src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java: tim@274: CodeCleanup: Removed unused Method getQueryIds tim@274: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java (closeConnection): tim@274: CodeCleanup: Inspect TODO and ansewerd the Question that the Connection has not to tim@274: be closed at that position but perhaps insite the ConnectionPool. tim@274: tim@273: 2009-10-30 Tim Englich tim@273: tim@273: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@273: Added Support for Polygons without interior Rings. This is required for generating tim@273: Horizontal Cross-Section Outputs. tim@273: The Z-Value of an Point was also added to the WKT-Represantation. tim@273: tim@272: 2009-10-29 Tim Englich tim@272: hans@278: Issue 45: Defintion of gaps in temporal and spatial data hans@278: tim@272: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getInteger): tim@272: Added Integer-Support for DoubleValues because the ArcSDE does tim@272: not read values like -1 as Integer-values. issue45 tim@272: tim@271: 2009-10-20 Tim Englich tim@271: hans@278: Issue 57: Improving memory usage of data objects hans@278: tim@271: * src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java (QueryExecutorBase), tim@271: src/main/java/de/intevation/gnv/geobackend/base/ResultDescriptor.java (getColumnClassName), tim@271: src/main/java/de/intevation/gnv/geobackend/base/Result.java, tim@271: src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java (serialVersionUID), tim@271: src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getDate): tim@271: Integrated Patch of issue57 to get some Memoryusage-improvements tim@271: sascha@270: 2009-10-19 Sascha L. Teichmann sascha@270: sascha@270: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java: sascha@270: Extends from HashMap directly to avoid one level of indirection and sascha@270: do not create so much needless objects. sascha@270: sascha@270: TODO: The representation in form of HashMaps is not very efficent! sascha@270: Use array with index instead. sascha@270: tim@269: 2009-10-14 Tim Englich tim@269: tim@269: * src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects), tim@269: src/test/ressources/QueryExecutorTestCase.properties: tim@269: Added further Queries for Testing Spatial-Query-Support tim@269: tim@267: 2009-10-14 Tim Englich tim@267: tim@268: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): tim@268: Add WKT-Syntaxt to Shape ReturnValue tim@267: * src/test/ressources/QueryExecutorTestCase.properties: tim@267: Changed Test-Query-Statement for Spatial-Queries with INNERJOINS and ORDER BY tim@267: * src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects): tim@267: Changed expected Result-Size because of Changes in the QueryStatement which is used. tim@267: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@267: Added INNERJOIN, ORDER BY and GROUP BY support to Spatial Queries tim@267: tim@263: 2009-10-13 Tim Englich tim@263: tim@266: * src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects): tim@266: Added an TaesCase for Querying spatial Data without an spatial restriction tim@266: * src/test/ressources/QueryExecutorTestCase.properties: tim@266: Added TestQuery with no spatial restriction tim@266: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@266: Now it is possible to send spatial Quieries without an spatial restriction in the where clause. tim@266: tim@266: 2009-10-13 Tim Englich hans@278: hans@278: Issue 34: SQL Exception in REST Server when accessing geo-backend hans@278: tim@265: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java (validateObject) Edited: tim@265: Added Tests if the Object is Closed. And add propper instance Tests tim@265: * src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java (initialize): tim@265: Added further ConfigurationParameters that could be set in the *.properties-File. tim@265: maxWait, maxIdle, minIdle, testOnBorrow, testOnReturn, testWhileIdle, numTestsPerEvictionRun, tim@265: timeBetweenEvictionRunsMillis, testWhileIdle tim@265: * src/test/ressources/ArcSDEConnectionPoolTestCase.properties: tim@265: Added som Configurationproperties for testing. tim@265: tim@265: tim@265: 2009-10-13 Tim Englich tim@264: * src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (QueryExecutorTestCase): tim@264: Changed expected Result of Spatial-Query-TestCase because of Changes to the used Query tim@263: * src/test/ressources/QueryExecutorTestCase.properties: tim@263: Added SFS-Conformal Query tim@263: * pom.xml: tim@263: Added dependency to JTS 1.9 tim@263: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): tim@263: Added Spatial-Query-Support for ArcSDE tim@263: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java (createPoints): tim@263: Switched Method Signature to JTS-Geometry-Support tim@263: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getStringValue): tim@263: Added String-Support for GeometryObjects tim@263: sascha@144: 2009-10-07 Sascha L. Teichmann sascha@144: sascha@144: RELEASE 0.1 sascha@144: sascha@144: * Changes, NEWS: Summarized changes. sascha@144: sascha@143: 2009-10-06 Sascha L. Teichmann sascha@143: sascha@143: * Changelog -> ChangeLog: Renamed to make eclipse happy. Unified changelog style. sascha@143: sascha@143: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java, sascha@143: src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java: sascha@143: Removed needless imports. sascha@143: sascha@143: * pom.xml: xmllint-ed sascha@143: sascha@143: 2009-09-29 Tim Englich sascha@143: sascha@143: * src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java (DATE_PATTERN) Edited: sascha@143: Make the Constants assessible for other Parts of the Project to reduce the TouchPoints for sascha@143: Dateformats. tim@263: tim@263: 2009-09-24 Tim Englich sascha@143: sascha@143: * src/main/java/de/intevation/gnv/geobackend/base/ResultDescriptor.java Edited, sascha@143: src/main/java/de/intevation/gnv/geobackend/base/Result.java Edited, sascha@143: src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java Edited, sascha@143: src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java Edited: sascha@143: Make Classes Serializable for Storing in ArtifactDatabase tim@263: tim@263: 2009-09-21 Tim Englich sascha@143: sascha@143: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java: tim@263: Added formatted Date Handling in getString Method sascha@143: * src/test/ressources/QueryExecutorTestCase.properties Edited, sascha@143: src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java Edited: sascha@143: Some tests for Spatialqueries added sascha@143: * src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java Edited: sascha@143: Put the final Querystring into a Logmessage sascha@143: tim@263: 2009-09-09 Tim Englich sascha@143: sascha@143: * src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getDate): tim@263: . Intance Check for DateValues sascha@143: * src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java (next): sascha@143: Logging removed because the performance slowdown fetching many ResultSets sascha@143: tim@263: 2009-09-04 Tim Englich sascha@143: sascha@270: * pom.xml: