Class BasicDataSourceFactory
- java.lang.Object
-
- org.datanucleus.store.rdbms.datasource.dbcp2.BasicDataSourceFactory
-
- All Implemented Interfaces:
javax.naming.spi.ObjectFactory
public class BasicDataSourceFactory extends java.lang.Object implements javax.naming.spi.ObjectFactoryJNDI object factory that creates an instance of
BasicDataSourcethat has been configured based on theRefAddrvalues of the specifiedReference, which must match the names and data types of theBasicDataSourcebean properties with the following exceptions:connectionInitSqlsmust be passed to this factory as a single String using semi-colon to delimit the statements whereasBasicDataSourcerequires a collection of Strings.
- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]ALL_PROPERTIESprivate static org.datanucleus.util.NucleusLoggerlogprivate static java.lang.StringNUPROP_MAX_ACTIVEprivate static java.lang.StringNUPROP_MAXWAITprivate static java.lang.StringNUPROP_REMOVE_ABANDONEDprivate static java.util.Map<java.lang.String,java.lang.String>NUPROP_WARNTEXTObsolete properties from DBCP 1.x.private static java.lang.StringPROP_ABANDONED_USAGE_TRACKINGprivate static java.lang.StringPROP_ACCESS_TO_UNDERLYING_CONNECTION_ALLOWEDprivate static java.lang.StringPROP_CACHE_STATEprivate static java.lang.StringPROP_CONNECTION_FACTORY_CLASS_NAMEprivate static java.lang.StringPROP_CONNECTION_INIT_SQLSThe property name for connectionInitSqls.private static java.lang.StringPROP_CONNECTION_PROPERTIESprivate static java.lang.StringPROP_DEFAULT_AUTO_COMMITprivate static java.lang.StringPROP_DEFAULT_CATALOGprivate static java.lang.StringPROP_DEFAULT_QUERY_TIMEOUTprivate static java.lang.StringPROP_DEFAULT_READ_ONLYprivate static java.lang.StringPROP_DEFAULT_SCHEMAprivate static java.lang.StringPROP_DEFAULT_TRANSACTION_ISOLATIONprivate static java.lang.StringPROP_DISCONNECTION_SQL_CODESValue string must be of the form [STATE_CODE,]*private static java.lang.StringPROP_DRIVER_CLASS_NAMEprivate static java.lang.StringPROP_ENABLE_AUTO_COMMIT_ON_RETURNprivate static java.lang.StringPROP_EVICTION_POLICY_CLASS_NAMEprivate static java.lang.StringPROP_FAST_FAIL_VALIDATIONprivate static java.lang.StringPROP_INITIAL_SIZEprivate static java.lang.StringPROP_JMX_NAMEprivate static java.lang.StringPROP_LIFOprivate static java.lang.StringPROP_LOG_ABANDONEDprivate static java.lang.StringPROP_LOG_EXPIRED_CONNECTIONSprivate static java.lang.StringPROP_MAX_CONN_LIFETIME_MILLISprivate static java.lang.StringPROP_MAX_IDLEprivate static java.lang.StringPROP_MAX_OPEN_PREPARED_STATEMENTSprivate static java.lang.StringPROP_MAX_TOTALprivate static java.lang.StringPROP_MAX_WAIT_MILLISprivate static java.lang.StringPROP_MIN_EVICTABLE_IDLE_TIME_MILLISprivate static java.lang.StringPROP_MIN_IDLEprivate static java.lang.StringPROP_NUM_TESTS_PER_EVICTION_RUNprivate static java.lang.StringPROP_PASSWORDprivate static java.lang.StringPROP_POOL_PREPARED_STATEMENTSprivate static java.lang.StringPROP_REMOVE_ABANDONED_ON_BORROWprivate static java.lang.StringPROP_REMOVE_ABANDONED_ON_MAINTENANCEprivate static java.lang.StringPROP_REMOVE_ABANDONED_TIMEOUTprivate static java.lang.StringPROP_ROLLBACK_ON_RETURNprivate static java.lang.StringPROP_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLISprivate static java.lang.StringPROP_TEST_ON_BORROWprivate static java.lang.StringPROP_TEST_ON_CREATEprivate static java.lang.StringPROP_TEST_ON_RETURNprivate static java.lang.StringPROP_TEST_WHILE_IDLEprivate static java.lang.StringPROP_TIME_BETWEEN_EVICTION_RUNS_MILLISprivate static java.lang.StringPROP_URLprivate static java.lang.StringPROP_USER_NAMEprivate static java.lang.StringPROP_VALIDATION_QUERYprivate static java.lang.StringPROP_VALIDATION_QUERY_TIMEOUTprivate static java.lang.StringSILENT_PROP_AUTHprivate static java.lang.StringSILENT_PROP_FACTORYprivate static java.lang.StringSILENT_PROP_SCOPEprivate static java.lang.StringSILENT_PROP_SINGLETONprivate static java.util.List<java.lang.String>SILENT_PROPERTIESSilent Properties.
-
Constructor Summary
Constructors Constructor Description BasicDataSourceFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static BasicDataSourcecreateDataSource(java.util.Properties properties)Creates and configures aBasicDataSourceinstance based on the given properties.java.lang.ObjectgetObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment)Create and return a newBasicDataSourceinstance.private static java.util.PropertiesgetProperties(java.lang.String propText)Parse properties from the string.private static java.util.Collection<java.lang.String>parseList(java.lang.String value, char delimiter)Parse list of property values from a delimited stringprivate voidvalidatePropertyNames(javax.naming.Reference ref, javax.naming.Name name, java.util.List<java.lang.String> warnings, java.util.List<java.lang.String> infoMessages)Collects warnings and info messages.
-
-
-
Field Detail
-
log
private static final org.datanucleus.util.NucleusLogger log
-
PROP_DEFAULT_AUTO_COMMIT
private static final java.lang.String PROP_DEFAULT_AUTO_COMMIT
- See Also:
- Constant Field Values
-
PROP_DEFAULT_READ_ONLY
private static final java.lang.String PROP_DEFAULT_READ_ONLY
- See Also:
- Constant Field Values
-
PROP_DEFAULT_TRANSACTION_ISOLATION
private static final java.lang.String PROP_DEFAULT_TRANSACTION_ISOLATION
- See Also:
- Constant Field Values
-
PROP_DEFAULT_CATALOG
private static final java.lang.String PROP_DEFAULT_CATALOG
- See Also:
- Constant Field Values
-
PROP_DEFAULT_SCHEMA
private static final java.lang.String PROP_DEFAULT_SCHEMA
- See Also:
- Constant Field Values
-
PROP_CACHE_STATE
private static final java.lang.String PROP_CACHE_STATE
- See Also:
- Constant Field Values
-
PROP_DRIVER_CLASS_NAME
private static final java.lang.String PROP_DRIVER_CLASS_NAME
- See Also:
- Constant Field Values
-
PROP_LIFO
private static final java.lang.String PROP_LIFO
- See Also:
- Constant Field Values
-
PROP_MAX_TOTAL
private static final java.lang.String PROP_MAX_TOTAL
- See Also:
- Constant Field Values
-
PROP_MAX_IDLE
private static final java.lang.String PROP_MAX_IDLE
- See Also:
- Constant Field Values
-
PROP_MIN_IDLE
private static final java.lang.String PROP_MIN_IDLE
- See Also:
- Constant Field Values
-
PROP_INITIAL_SIZE
private static final java.lang.String PROP_INITIAL_SIZE
- See Also:
- Constant Field Values
-
PROP_MAX_WAIT_MILLIS
private static final java.lang.String PROP_MAX_WAIT_MILLIS
- See Also:
- Constant Field Values
-
PROP_TEST_ON_CREATE
private static final java.lang.String PROP_TEST_ON_CREATE
- See Also:
- Constant Field Values
-
PROP_TEST_ON_BORROW
private static final java.lang.String PROP_TEST_ON_BORROW
- See Also:
- Constant Field Values
-
PROP_TEST_ON_RETURN
private static final java.lang.String PROP_TEST_ON_RETURN
- See Also:
- Constant Field Values
-
PROP_TIME_BETWEEN_EVICTION_RUNS_MILLIS
private static final java.lang.String PROP_TIME_BETWEEN_EVICTION_RUNS_MILLIS
- See Also:
- Constant Field Values
-
PROP_NUM_TESTS_PER_EVICTION_RUN
private static final java.lang.String PROP_NUM_TESTS_PER_EVICTION_RUN
- See Also:
- Constant Field Values
-
PROP_MIN_EVICTABLE_IDLE_TIME_MILLIS
private static final java.lang.String PROP_MIN_EVICTABLE_IDLE_TIME_MILLIS
- See Also:
- Constant Field Values
-
PROP_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS
private static final java.lang.String PROP_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS
- See Also:
- Constant Field Values
-
PROP_EVICTION_POLICY_CLASS_NAME
private static final java.lang.String PROP_EVICTION_POLICY_CLASS_NAME
- See Also:
- Constant Field Values
-
PROP_TEST_WHILE_IDLE
private static final java.lang.String PROP_TEST_WHILE_IDLE
- See Also:
- Constant Field Values
-
PROP_PASSWORD
private static final java.lang.String PROP_PASSWORD
- See Also:
- Constant Field Values
-
PROP_URL
private static final java.lang.String PROP_URL
- See Also:
- Constant Field Values
-
PROP_USER_NAME
private static final java.lang.String PROP_USER_NAME
- See Also:
- Constant Field Values
-
PROP_VALIDATION_QUERY
private static final java.lang.String PROP_VALIDATION_QUERY
- See Also:
- Constant Field Values
-
PROP_VALIDATION_QUERY_TIMEOUT
private static final java.lang.String PROP_VALIDATION_QUERY_TIMEOUT
- See Also:
- Constant Field Values
-
PROP_JMX_NAME
private static final java.lang.String PROP_JMX_NAME
- See Also:
- Constant Field Values
-
PROP_CONNECTION_FACTORY_CLASS_NAME
private static final java.lang.String PROP_CONNECTION_FACTORY_CLASS_NAME
- See Also:
- Constant Field Values
-
PROP_CONNECTION_INIT_SQLS
private static final java.lang.String PROP_CONNECTION_INIT_SQLS
The property name for connectionInitSqls. The associated value String must be of the form [query;]*- See Also:
- Constant Field Values
-
PROP_ACCESS_TO_UNDERLYING_CONNECTION_ALLOWED
private static final java.lang.String PROP_ACCESS_TO_UNDERLYING_CONNECTION_ALLOWED
- See Also:
- Constant Field Values
-
PROP_REMOVE_ABANDONED_ON_BORROW
private static final java.lang.String PROP_REMOVE_ABANDONED_ON_BORROW
- See Also:
- Constant Field Values
-
PROP_REMOVE_ABANDONED_ON_MAINTENANCE
private static final java.lang.String PROP_REMOVE_ABANDONED_ON_MAINTENANCE
- See Also:
- Constant Field Values
-
PROP_REMOVE_ABANDONED_TIMEOUT
private static final java.lang.String PROP_REMOVE_ABANDONED_TIMEOUT
- See Also:
- Constant Field Values
-
PROP_LOG_ABANDONED
private static final java.lang.String PROP_LOG_ABANDONED
- See Also:
- Constant Field Values
-
PROP_ABANDONED_USAGE_TRACKING
private static final java.lang.String PROP_ABANDONED_USAGE_TRACKING
- See Also:
- Constant Field Values
-
PROP_POOL_PREPARED_STATEMENTS
private static final java.lang.String PROP_POOL_PREPARED_STATEMENTS
- See Also:
- Constant Field Values
-
PROP_MAX_OPEN_PREPARED_STATEMENTS
private static final java.lang.String PROP_MAX_OPEN_PREPARED_STATEMENTS
- See Also:
- Constant Field Values
-
PROP_CONNECTION_PROPERTIES
private static final java.lang.String PROP_CONNECTION_PROPERTIES
- See Also:
- Constant Field Values
-
PROP_MAX_CONN_LIFETIME_MILLIS
private static final java.lang.String PROP_MAX_CONN_LIFETIME_MILLIS
- See Also:
- Constant Field Values
-
PROP_LOG_EXPIRED_CONNECTIONS
private static final java.lang.String PROP_LOG_EXPIRED_CONNECTIONS
- See Also:
- Constant Field Values
-
PROP_ROLLBACK_ON_RETURN
private static final java.lang.String PROP_ROLLBACK_ON_RETURN
- See Also:
- Constant Field Values
-
PROP_ENABLE_AUTO_COMMIT_ON_RETURN
private static final java.lang.String PROP_ENABLE_AUTO_COMMIT_ON_RETURN
- See Also:
- Constant Field Values
-
PROP_DEFAULT_QUERY_TIMEOUT
private static final java.lang.String PROP_DEFAULT_QUERY_TIMEOUT
- See Also:
- Constant Field Values
-
PROP_FAST_FAIL_VALIDATION
private static final java.lang.String PROP_FAST_FAIL_VALIDATION
- See Also:
- Constant Field Values
-
PROP_DISCONNECTION_SQL_CODES
private static final java.lang.String PROP_DISCONNECTION_SQL_CODES
Value string must be of the form [STATE_CODE,]*- See Also:
- Constant Field Values
-
NUPROP_MAX_ACTIVE
private static final java.lang.String NUPROP_MAX_ACTIVE
- See Also:
- Constant Field Values
-
NUPROP_REMOVE_ABANDONED
private static final java.lang.String NUPROP_REMOVE_ABANDONED
- See Also:
- Constant Field Values
-
NUPROP_MAXWAIT
private static final java.lang.String NUPROP_MAXWAIT
- See Also:
- Constant Field Values
-
SILENT_PROP_FACTORY
private static final java.lang.String SILENT_PROP_FACTORY
- See Also:
- Constant Field Values
-
SILENT_PROP_SCOPE
private static final java.lang.String SILENT_PROP_SCOPE
- See Also:
- Constant Field Values
-
SILENT_PROP_SINGLETON
private static final java.lang.String SILENT_PROP_SINGLETON
- See Also:
- Constant Field Values
-
SILENT_PROP_AUTH
private static final java.lang.String SILENT_PROP_AUTH
- See Also:
- Constant Field Values
-
ALL_PROPERTIES
private static final java.lang.String[] ALL_PROPERTIES
-
NUPROP_WARNTEXT
private static final java.util.Map<java.lang.String,java.lang.String> NUPROP_WARNTEXT
Obsolete properties from DBCP 1.x. with warning strings suggesting new properties. LinkedHashMap will guarantee that properties will be listed to output in order of insertion into map.
-
SILENT_PROPERTIES
private static final java.util.List<java.lang.String> SILENT_PROPERTIES
Silent Properties. These properties will not be listed as ignored - we know that they may appear in JDBC Resource references, and we will not list them as ignored.
-
-
Method Detail
-
getObjectInstance
public java.lang.Object getObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable<?,?> environment) throws java.lang.ExceptionCreate and return a new
BasicDataSourceinstance. If no instance can be created, returnnullinstead.- Specified by:
getObjectInstancein interfacejavax.naming.spi.ObjectFactory- Parameters:
obj- The possibly null object containing location or reference information that can be used in creating an objectname- The name of this object relative tonameCtxnameCtx- The context relative to which thenameparameter is specified, ornullifnameis relative to the default initial contextenvironment- The possibly null environment that is used in creating this object- Throws:
java.lang.Exception- if an exception occurs creating the instance
-
validatePropertyNames
private void validatePropertyNames(javax.naming.Reference ref, javax.naming.Name name, java.util.List<java.lang.String> warnings, java.util.List<java.lang.String> infoMessages)Collects warnings and info messages. Warnings are generated when an obsolete property is set. Unknown properties generate info messages.- Parameters:
ref- Reference to check properties ofname- Name provided to getObjectwarnings- container for warning messagesinfoMessages- container for info messages
-
createDataSource
public static BasicDataSource createDataSource(java.util.Properties properties) throws java.lang.Exception
Creates and configures aBasicDataSourceinstance based on the given properties.- Parameters:
properties- The data source configuration properties.- Returns:
- A new a
BasicDataSourceinstance based on the given properties. - Throws:
java.lang.Exception- Thrown when an error occurs creating the data source.
-
getProperties
private static java.util.Properties getProperties(java.lang.String propText) throws java.lang.ExceptionParse properties from the string. Format of the string must be [propertyName=property;]*
- Parameters:
propText-- Returns:
- Properties
- Throws:
java.lang.Exception
-
parseList
private static java.util.Collection<java.lang.String> parseList(java.lang.String value, char delimiter)Parse list of property values from a delimited string- Parameters:
value- delimited list of valuesdelimiter- character used to separate values in the list- Returns:
- String Collection of values
-
-