Class JDBCJNDIDataStoreFactory
- All Implemented Interfaces:
DataAccessFactory
,DataStoreFactorySpi
,Factory
- Direct Known Subclasses:
DB2NGJNDIDataStoreFactory
,H2GISJNDIDataStoreFactory
,H2JNDIDataStoreFactory
,HanaJNDIDataStoreFactory
,InformixJNDIDataStoreFactory
,MySQLJNDIDataStoreFactory
,OracleNGJNDIDataStoreFactory
,PostgisNGJNDIDataStoreFactory
,SingleStoreJNDIDataStoreFactory
,SQLServerJNDIDataStoreFactory
,TeradataJNDIDataStoreFactory
Subclasses should not need to override any methods, only just call the parent constructor passing in the non JNDI datastore factory to delegate to.
- Author:
- Christian Mueller
-
Nested Class Summary
Nested classes/interfaces inherited from interface DataAccessFactory
DataAccessFactory.Param
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JDBCDataStoreFactory
regular datastore factory to delegate to.static final String
static final DataAccessFactory.Param
JNDI data source nameFields inherited from class JDBCDataStoreFactory
BATCH_INSERT_SIZE, CALLBACK_FACTORY, DATABASE, DATASOURCE, DBTYPE, EVICTOR_TESTS_PER_RUN, EXPOSE_PK, FETCHSIZE, HOST, MAX_OPEN_PREPARED_STATEMENTS, MAXCONN, MAXWAIT, MIN_EVICTABLE_TIME, MINCONN, NAMESPACE, PASSWD, PK_METADATA_TABLE, PORT, SCHEMA, SQL_ON_BORROW, SQL_ON_RELEASE, TEST_WHILE_IDLE, TIME_BETWEEN_EVICTOR_RUNS, USER, VALIDATECONN
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
checkDBType
(Map<String, ?> params) protected DataSource
createDataSource
(Map<String, ?> params, SQLDialect dialect) Override to create the datasource from the external JNDI conection.protected JDBCDataStore
createDataStoreInternal
(JDBCDataStore dataStore, Map<String, ?> params) Subclass hook to do additional initialization of a newly created datastore.createNewDataStore
(Map<String, ?> params) protected SQLDialect
createSQLDialect
(JDBCDataStore dataStore) Creates the dialect that the datastore uses for communication with the underlying database.protected String
Returns a string to identify the type of the database.Describe the nature of the datasource constructed by this factory.Name suitable for display to end user.protected String
Override which explicitly returns null because with a JNDI connection the driver is not known ahead of time.Returns the implementation hints for the datastore.protected String
getJDBCUrl
(Map<String, ?> params) Override which explicitly returns null since there is no jdbc url, the connection is identified by the JNDI name.protected String
Override which explicitly returns null, validation queries are not supported, my be part of the external data source configurationboolean
Determines if the datastore is available.protected void
setupParameters
(Map<String, Object> parameters) Override to omit all those parameters which define the creation of the connection.Methods inherited from class JDBCDataStoreFactory
canProcess, checkDBType, createDataSource, createDataStore, createSQLDialect, getParametersInfo
-
Field Details
-
J2EERootContext
- See Also:
-
JNDI_REFNAME
JNDI data source name -
delegate
regular datastore factory to delegate to.
-
-
Constructor Details
-
JDBCJNDIDataStoreFactory
-
-
Method Details
-
getDriverClassName
Override which explicitly returns null because with a JNDI connection the driver is not known ahead of time.- Specified by:
getDriverClassName
in classJDBCDataStoreFactory
-
getValidationQuery
Override which explicitly returns null, validation queries are not supported, my be part of the external data source configuration- Specified by:
getValidationQuery
in classJDBCDataStoreFactory
-
getJDBCUrl
Override which explicitly returns null since there is no jdbc url, the connection is identified by the JNDI name.- Overrides:
getJDBCUrl
in classJDBCDataStoreFactory
- Throws:
IOException
-
createDataSource
Override to create the datasource from the external JNDI conection.- Overrides:
createDataSource
in classJDBCDataStoreFactory
- Throws:
IOException
-
isAvailable
public boolean isAvailable()Determines if the datastore is available.Check in an Initial Context is available, that is all what can be done Checking for the right jdbc jars in the classpath is not possible here
- Specified by:
isAvailable
in interfaceDataAccessFactory
- Overrides:
isAvailable
in classJDBCDataStoreFactory
- Returns:
- true if and only if this factory has all the appropriate jars on the classpath to create DataStores.
-
setupParameters
Override to omit all those parameters which define the creation of the connection.- Overrides:
setupParameters
in classJDBCDataStoreFactory
- Parameters:
parameters
- Map ofDataAccessFactory.Param
objects.
-
getDatabaseID
Description copied from class:JDBCDataStoreFactory
Returns a string to identify the type of the database.Example: 'postgis'.
- Specified by:
getDatabaseID
in classJDBCDataStoreFactory
-
getDisplayName
Description copied from interface:DataAccessFactory
Name suitable for display to end user.A non localized display name for this data store type.
- Specified by:
getDisplayName
in interfaceDataAccessFactory
- Overrides:
getDisplayName
in classJDBCDataStoreFactory
- Returns:
- A short name suitable for display in a user interface.
-
getDescription
Description copied from interface:DataAccessFactory
Describe the nature of the datasource constructed by this factory.A non localized description of this data store type.
- Returns:
- A human readable description that is suitable for inclusion in a list of available datasources.
-
createDataStoreInternal
protected JDBCDataStore createDataStoreInternal(JDBCDataStore dataStore, Map<String, ?> params) throws IOExceptionDescription copied from class:JDBCDataStoreFactory
Subclass hook to do additional initialization of a newly created datastore.Typically subclasses will want to override this method in the case where they provide additional datastore parameters, those should be processed here.
This method is provided with an instance of the datastore. In some cases subclasses may wish to create a new instance of the datastore, for instance in order to wrap the original instance. This is supported but the new datastore must be returned from this method. If not is such the case this method should still return the original passed in.
- Overrides:
createDataStoreInternal
in classJDBCDataStoreFactory
- Parameters:
dataStore
- The newly created datastore.params
- THe datastore parameters.- Throws:
IOException
-
createNewDataStore
- Specified by:
createNewDataStore
in interfaceDataStoreFactorySpi
- Overrides:
createNewDataStore
in classJDBCDataStoreFactory
- Throws:
IOException
-
getImplementationHints
Description copied from class:JDBCDataStoreFactory
Returns the implementation hints for the datastore.Subclasses may override, this implementation returns
null
.- Specified by:
getImplementationHints
in interfaceFactory
- Overrides:
getImplementationHints
in classJDBCDataStoreFactory
- Returns:
- The map of hints, or an {@linkplain java.util.Collections.emptyMap() empty map} if none.
-
createSQLDialect
Description copied from class:JDBCDataStoreFactory
Creates the dialect that the datastore uses for communication with the underlying database.- Specified by:
createSQLDialect
in classJDBCDataStoreFactory
- Parameters:
dataStore
- The datastore.
-
checkDBType
- Overrides:
checkDBType
in classJDBCDataStoreFactory
-