view geo-backend/ChangeLog @ 541:3cbf11c67fdc

Experimental caching of SQL results via Ehache geo-backend/trunk@462 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 18 Dec 2009 16:13:52 +0000
parents 27082b83c267
children f0b6d0e2a0f6
line wrap: on
line source
2009-12-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	Experimental caching of SQL results via Ehache

	* pom.xml: Added dependency to Ehcache

	* src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutor.java:
	  Extended interface to support caching by SQL statements as Strings.

	* src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java:
	  Implements new interface with no caching
	
	* src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainerFactory.java:
	  synchronized access to singleton.

	* src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java:
	  calls caching methods of base class.

	* src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorFactory.java:
	  When system property 'query.executor.factory' is given the value is used as
	  a class name to be instantiated as a sub class of QueryExecutorFactory.
	  This happens if the singleton of QueryExecutorFactory is created. With the
	  mechanism it is possible to replace the standard behavior of creating QueryExecutors.

	* src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java:
	  New: This class extends QueryExecutorFactory and can be used as replacement for
	  the standard QueryExecutorFactory. Usage: 

	  -Dquery.executor.factory=de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory

	  If you pass in another system property 'caching.query.executor.config' you can
	  customize the caching. The value is used as a file name to an XML file with 
	  Ehcache configuration.

	* contrib/sql-cache.xml: Demo configuration for sql caching. Usage:

	  -Dquery.executor.factory=de.intevation.gnv.geobackend.base.query.CachingQueryExecutorFactory
	  -Dcaching.query.executor.config=contrib/sql-cache.xml

2009-12-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	RELEASE 0.3

	* Changes, NEWS, ChangeLog: Summarized changes.

2009-12-17  Ingo Weinzierl <ingo.weinzierl@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java:
	  Fixed bug in DefaultResult when querying an index out of bounds.

2009-12-15  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  We have to use a different SpatialFilter for Point in Polygon Queries as 
	  in AreaIntersection Statements.
	  So we have to include a switch which will do that.
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java (createPoints): 
	  Added Support of Point-Objects for the possibility to execute a Point in Pologon 
	  Statement using the ArcSDE.

2009-12-11  Ingo Weinzierl <ingo.weinzierl@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java:
	  DefaultResult will return null if it doesn't contain the specified column
	  name in method getString(String columnName), instead of throwing an
	  exception.

2009-12-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java,
	src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java,
	src/main/java/de/intevation/gnv/geobackend/base/query/container/DefaultQueryContainer.java:
	Removed needless imports.

2009-11-30  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java,
	  src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java, 
	  src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEResultSetMetaData.java, 
	  src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java: 
	  Added missing Methodstubs for Java 1.6 compability.
	  ###################################################
	  ###### ATTENTION: ONLY USE JAVA 1.6 FOR THIS ######
	  ######         AND ALL USING MODULES.        ######
	  ###################################################

2009-11-27  Tim Englich  <tim.englich@intevation.de>

	* src/test/ressources/QueryExecutorTestCase.properties,
	  src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java: 
	  Revert Changes of the commit of Revision 377 which was unintended
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Changed Splitalgorithm of Statements so that it is Possible to add to_date Colums into a Statement
	  with Spatial-Columns or Spatial-Filters

2009-11-13  Hans Plum <hans@intevation.de>

	RELEASE 0.2

	* Changes, NEWS: Summarized changes.

2009-11-13  Hans Plum <hans@intevation.de>

	* Made some ChangeLog entries a bit clearer.

2009-11-10  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Changed the splitting of the Statements for ARCSDE-Transformation.
	  Now it is possible to use a Select-Statement as an Table.

2009-11-06  Ingo Weinzierl <ingo.weinzierl@intevation.de>

	* target/**: Removed. Should not be in version control.

2009-11-05  Tim Englich  <tim.englich@intevation.de>

	* src/test/ressources/QueryExecutorTestCase.properties,
	  src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithInnerSelect):
	  Added an Tescase to test the InnerSelect Statments in Spatial-Queries.
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): 
	  Bugfix. An Point could not have an Z-Coordinate-Value
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Added the possibility to execute Spatial-Queries using InnerStatements instead
	  of WKT in Intersects-where-clauses.

2009-11-02  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnection.java (createStatement): 
	  Changed TODO to a question
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  CodeCleanup: Removed deprecated TODO
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java (getColumnIndex): 
	  Removed Typo.
	* src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java: 
	  CodeCleanup: Removed deprecated TODOS and replace Tabs with whitespaces.
	* src/main/java/de/intevation/gnv/geobackend/base/query/container/DefaultQueryContainer.java:,
	  src/main/java/de/intevation/gnv/geobackend/base/query/container/QueryContainer.java:
	  CodeCleanup: Removed unused Method getQueryIds
	* src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java (closeConnection): 
	  CodeCleanup: Inspect TODO and ansewerd the Question that the Connection has not to
	  be closed at that position but perhaps insite the ConnectionPool. 

2009-10-30  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): 
	  Added Support for Polygons without interior Rings. This is required for generating
	  Horizontal Cross-Section Outputs.
	  The Z-Value of an Point was also added to the WKT-Represantation.

2009-10-29  Tim Englich  <tim.englich@intevation.de>

	Issue 45: Defintion of gaps in temporal and spatial data

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getInteger): 
	  Added Integer-Support for DoubleValues because the ArcSDE does 
	  not read values like -1 as Integer-values. issue45

2009-10-20  Tim Englich  <tim.englich@intevation.de>

	Issue 57: Improving memory usage of data objects

	* src/main/java/de/intevation/gnv/geobackend/base/query/QueryExecutorBase.java (QueryExecutorBase),
	  src/main/java/de/intevation/gnv/geobackend/base/ResultDescriptor.java (getColumnClassName),
	  src/main/java/de/intevation/gnv/geobackend/base/Result.java, 
	  src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java (serialVersionUID), 
	  src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getDate):
	  Integrated Patch of issue57 to get some Memoryusage-improvements  

2009-10-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java:
	Extends from HashMap directly to avoid one level of indirection and
	do not create so much needless objects.

	TODO: The representation in form of HashMaps is not very efficent!
	Use array with index instead.

2009-10-14  Tim Englich  <tim.englich@intevation.de>

	* src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects), 
	  src/test/ressources/QueryExecutorTestCase.properties: 
	  Added further Queries for Testing Spatial-Query-Support
	  
2009-10-14  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getPosValue): 
	  Add WKT-Syntaxt to Shape ReturnValue
	* src/test/ressources/QueryExecutorTestCase.properties: 
	  Changed Test-Query-Statement for Spatial-Queries with INNERJOINS and ORDER BY
	* src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects): 
	  Changed expected Result-Size because of Changes in the QueryStatement which is used.
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Added INNERJOIN, ORDER BY and GROUP BY support to Spatial Queries

2009-10-13  Tim Englich  <tim.englich@intevation.de>

	* src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (testSpatialQueryWithoutIntersects): 
	  Added an TaesCase for Querying spatial Data without an spatial restriction
	* src/test/ressources/QueryExecutorTestCase.properties: 
	  Added TestQuery with no spatial restriction
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Now it is possible to send spatial Quieries without an spatial restriction in the where clause.
	
2009-10-13  Tim Englich  <tim.englich@intevation.de>

	Issue 34: SQL Exception in REST Server when accessing geo-backend

	* src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java (validateObject) Edited:
	  Added Tests if the Object is Closed. And add propper instance Tests 
	* src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEConnectionPool.java (initialize):
	  Added further ConfigurationParameters that could be  set in the *.properties-File.
	  maxWait, maxIdle, minIdle, testOnBorrow, testOnReturn, testWhileIdle, numTestsPerEvictionRun, 
	  timeBetweenEvictionRunsMillis, testWhileIdle 
	* src/test/ressources/ArcSDEConnectionPoolTestCase.properties: 
	  Added som Configurationproperties for testing.
	  
	  
2009-10-13  Tim Englich  <tim.englich@intevation.de>
	* src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java (QueryExecutorTestCase):
	  Changed expected Result of Spatial-Query-TestCase because of Changes to the used Query 
	* src/test/ressources/QueryExecutorTestCase.properties: 
	  Added SFS-Conformal Query
	* pom.xml:
	  Added dependency to JTS 1.9
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java (executeQuery): 
	  Added Spatial-Query-Support for ArcSDE
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEUtils.java (createPoints): 
	  Switched Method Signature to JTS-Geometry-Support
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/Row.java (getStringValue): 
	  Added String-Support for GeometryObjects

2009-10-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	RELEASE 0.1

	* Changes, NEWS: Summarized changes.

2009-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>

	* Changelog -> ChangeLog: Renamed to make eclipse happy. Unified changelog style.

	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEQuery.java,
	  src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java:
	  Removed needless imports.

	* pom.xml: xmllint-ed

2009-09-29	Tim Englich	<tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/util/DateUtils.java (DATE_PATTERN) Edited:
	  Make the Constants assessible for other Parts of the Project to reduce the TouchPoints for
	  Dateformats.

2009-09-24  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/ResultDescriptor.java Edited, 
	  src/main/java/de/intevation/gnv/geobackend/base/Result.java Edited, 
	  src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java Edited,  
	  src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java Edited:
	  Make Classes Serializable for Storing in ArtifactDatabase 

2009-09-21  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java: 
	  Added formatted Date Handling in getString Method
	* src/test/ressources/QueryExecutorTestCase.properties Edited, 
	  src/test/java/de/intevation/gnv/geobackend/base/query/QueryExecutorTestCase.java Edited:
	  Some tests for Spatialqueries added 
	* src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java Edited: 
	  Put the final Querystring into a Logmessage

2009-09-09  Tim Englich  <tim.englich@intevation.de>

	* src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java (getDate):
	 . Intance Check for DateValues
	* src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEResultSet.java (next):
	  Logging removed because the performance slowdown fetching many ResultSets 

2009-09-04  Tim Englich  <tim.englich@intevation.de>

	* pom.xml: 

http://dive4elements.wald.intevation.org