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: