Construction of a epsg-oracle CRSAuthority that will work in a Java EE environment
The epsg-oracle plugin is an experiment focused on cleaning up the JDBC Authority abstract classes to ensure the DataSource can be provided.
Some ideas on the use of DataSource in GeoTools (and how we can set up a testing environment are recorded here): J2EE and Connection Pools
In addition the following problems have been noted ...
- AbstractAuthorityFactory - some features are just package-visible (org.geotools.referencing.factory)
- BufferedAuthorityFactory had problem with put( Object, Object ) not caching
- AuthorityCodes is only package visisble
- BursaWolfInfo is only package visible
- DataSource - this is WRONG we cannot extend DataSource on our own (we need to use one provided by others)
- DefaultFactory requirements
- Some kind of DATASOURCE_NAME to work in JBoss (should be configurable)
- Require DEFAULT_BUFFER_MAX and DEFAULT_PRIORITY_DEC as constructor parameters, either as DefaultFactory(Hints, int, int) to expose the parent constructor, or as new Hints of their own
- createFactory() needs to wrap the DataSource obtained from JNDI into a class that implements the local DataSource interface.
- createFactory() cannot bind the DataSource into JNDI (will not always have permission)
- createBackingStore() needs to close the JDBC connection obtained from the DataSource (thereby returning it to the pool)
- FactoryUsingAnsiSQL - should not cache the connection (the DataSource will do that)
- FactoryUsingOracleSQL - addition to 'AS', the Oracle reserved word 'FILE' is replaced in the query Strings. This necessary because one query uses 'FILE' to rename a column in a SELECT for a column. This factory is used by the <code>AbstractDataSource</code>
- FactoryUsingSQL - also caches the COnnection instead of DataSource
- TableInfo - not public
The following bug reports are important:
- http://jira.codehaus.org/browse/GEOT-909 - EPSG DefaultFactory does not work in an EJB environment
- Need to supply a DATASOURCE_NAME hint - should be of the form "java:EPSG" to keep JBoss happy
- FactoryUsingSQL should not remove connection from a pool like FactoryUsingSQL does (need to connect and close on each use). Needed for a multi user environment like Java EE.
- Need to either use a single factory (may become a bottleneck) or use a pool of factories (will need to fix the FactoryUsingSQL connection cache first)
- http://jira.codehaus.org/browse/GEOT-908 - FactoryUsingSQL uses Oracle reserved word in query
- http://jira.codehaus.org/browse/GEOT-907 - Caching in BufferedAuthorityFactory does not work
This is a research module, and is not currently tracked using Jira. This is however associated with referencing: