public final class JDOManager extends Object implements DataObjects, Referenceable, ObjectFactory, Serializable
getDatabase()
is used
to obtain a new database connection. Any number of database connections can
be obtained from the same JDOManager object.
An instance of this class is contructed with a two-step approach:
... JDOManager jdo; Database db; try { // load the JDOManager configuration file JDOManager.loadConfiguration("jdo-config.xml"); // construct a new JDOManager for 'mydb' jdo = JDOManager.createInstance("mydb"); // open a connection to the database db = jdo.getDatabase(); } catch (MappingException ex) { ... } catch (DatabaseNotFoundException ex) { ... }
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_DESCRIPTION
Default description.
|
static int |
DEFAULT_LOCK_TIMEOUT
The default lock timeout (specified in seconds).
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Lyfe-cycle methods to close JDOManager instance and initiate resource cleanup.
|
static JDOManager |
createInstance(String databaseName)
Factory method for creating a JDOManager instance for one of the
databases configured in the JDOManager configuration file.
|
static void |
disposeInstance(String databaseName)
Method to dispose a JDOManager instance.
|
CallbackInterceptor |
getCallbackInterceptor()
Returns the callback interceptor.
|
ClassLoader |
getClassLoader()
Returns the application classloader.
|
InputSource |
getConfiguration()
Return the URL of the database configuration file.
|
ConnectionFactory |
getConnectionFactory()
Returns the ConnectionFactory for this JDOManager instance.
|
Database |
getDatabase()
Opens and returns a connection to the database.
|
String |
getDatabaseName()
Returns the name of this database.
|
boolean |
getDatabasePooling()
Indicates if database pooling is enable or not.
|
String |
getDescription()
Returns the description of this database.
|
EntityResolver |
getEntityResolver()
Returns the entity resolver.
|
InstanceFactory |
getInstanceFactory()
Returns the instance factory.
|
int |
getLockTimeout()
Returns the lock timeout for this database.
|
Object |
getObjectInstance(Object refObj,
Name name,
Context nameCtx,
Hashtable<?,?> env) |
Reference |
getReference()
Constructs a new reference to JDOManager being its own factory.
|
boolean |
isAutoStore()
Return if the next database instance will be set to autoStore.
|
static void |
loadConfiguration(InputSource source,
EntityResolver resolver,
ClassLoader loader)
Load the JDOManager configuration from the specified input source using
a custom class loader.
|
static void |
loadConfiguration(InputSource source,
EntityResolver resolver,
ClassLoader loader,
JDOClassDescriptorResolver classDescriptorResolver)
Load the JDOManager configuration from the specified input source using
a custom class loader.
|
static void |
loadConfiguration(JdoConf jdoConf,
ClassLoader loader,
String baseURI)
Load the JDOManager configuration from the specified in-memory JdoConf.
|
static void |
loadConfiguration(JdoConf jdoConf,
EntityResolver resolver,
ClassLoader loader,
String baseURI)
Load the JDOManager configuration from the specified in-memory JdoConf.
|
static void |
loadConfiguration(JdoConf jdoConf,
String baseURI)
Load the JDOManager configuration from the specified in-memory JdoConf.
|
static void |
loadConfiguration(String url)
Load the JDOManager configuration from the specified location.
|
static void |
loadConfiguration(String url,
ClassLoader loader)
Load the JDOManager configuration from the specified location using a
custom class loader.
|
static void |
loadConfiguration(String url,
ClassLoader loader,
JDOClassDescriptorResolver classDescriptorResolver)
Load the JDOManager configuration from the specified location using a
custom class loader.
|
static void |
loadConfiguration(String name,
String engine,
DataSource datasource,
Mapping mapping,
TransactionManager txManager)
Initialize the JDOManager configuration with given name, engine, datasource,
transaction demarcation and mapping.
|
void |
setAutoStore(boolean autoStore)
Sets autoStore mode.
|
void |
setCallbackInterceptor(CallbackInterceptor callback)
Overrides the default callback interceptor by a custom interceptor
for this database source.
|
void |
setDatabasePooling(boolean pool)
Enable/disable database pooling.
|
void |
setDescription(String description)
Sets the description of this database.
|
void |
setInstanceFactory(InstanceFactory factory)
Overrides the default instance factory by a custom one to be used by
Castor to obtaining an instance of a data object when it is needed during
loading.
|
void |
setLockTimeout(int seconds)
Sets the lock timeout for this database.
|
public static final int DEFAULT_LOCK_TIMEOUT
public static final String DEFAULT_DESCRIPTION
public static JDOManager createInstance(String databaseName) throws MappingException
databaseName
- Database name as configured in the JDOManager
configuration file.MappingException
- The mapping file is invalid, or any error
occurred trying to load the mapping from JDOManager configuration
file.public static void disposeInstance(String databaseName)
databaseName
- Database name as configured in the JDOManager
configuration file.public static void loadConfiguration(String name, String engine, DataSource datasource, Mapping mapping, TransactionManager txManager) throws MappingException
name
- The Name of the database configuration.engine
- The Name of the persistence factory to use.datasource
- The preconfigured datasource to use for creating connections.mapping
- The previously loaded mapping.txManager
- The transaction manager to use.MappingException
- If LockEngine could not be initialized.public static void loadConfiguration(JdoConf jdoConf, EntityResolver resolver, ClassLoader loader, String baseURI) throws MappingException
jdoConf
- the in-memory JdoConf.resolver
- An (optional) entity resolver to resolve cached
entities, e.g. for external mapping documents.loader
- The class loader to use, null for the defaultbaseURI
- The base URL for the mappingMappingException
- The mapping file is invalid, or any error
occured trying to load the JDO configuration/mappingpublic static void loadConfiguration(JdoConf jdoConf, ClassLoader loader, String baseURI) throws MappingException
jdoConf
- the in-memory JdoConf.loader
- The class loader to use, null for the defaultbaseURI
- The base URL for the mappingMappingException
- The mapping file is invalid, or any error
occured trying to load the JDO configuration/mappingpublic static void loadConfiguration(JdoConf jdoConf, String baseURI) throws MappingException
jdoConf
- the in-memory JdoConf.baseURI
- The base URL for the mappingMappingException
- The mapping file is invalid, or any error
occured trying to load the JDO configuration/mappingpublic static void loadConfiguration(InputSource source, EntityResolver resolver, ClassLoader loader) throws MappingException
source
- The JDOManager configuration file describing the
databases, connection factory and mappings.resolver
- An (optional) entity resolver to resolve cached
entities, e.g. for external mapping documents.loader
- The class loader to use, null for the defaultMappingException
- The mapping file is invalid, or any error
occured trying to load the JDO configuration/mappingpublic static void loadConfiguration(InputSource source, EntityResolver resolver, ClassLoader loader, JDOClassDescriptorResolver classDescriptorResolver) throws MappingException
source
- The JDOManager configuration file describing the
databases, connection factory and mappings.resolver
- An (optional) entity resolver to resolve cached
entities, e.g. for external mapping documents.loader
- The class loader to use, null for the defaultclassDescriptorResolver
- ClassDescriptorResolver
used for class to class
descriptor resolution.MappingException
- The mapping file is invalid, or any error
occurred trying to load the JDO configuration/mappingpublic static void loadConfiguration(String url, ClassLoader loader) throws MappingException
url
- The location from which to load the configuration file.loader
- The custom class loader to use, null for the default.MappingException
- The mapping file is invalid, or any error
occured trying to load the JDOManager configuration/mapping.public static void loadConfiguration(String url, ClassLoader loader, JDOClassDescriptorResolver classDescriptorResolver) throws MappingException
url
- The location from which to load the configuration file.loader
- The custom class loader to use, null for the default. *classDescriptorResolver
- ClassDescriptorResolver
used for class to class
descriptor resolution.MappingException
- The mapping file is invalid, or any error occurred trying
to load the JDOManager configuration/mapping.public static void loadConfiguration(String url) throws MappingException
url
- The location from which to load the configuration file.MappingException
- The mapping file is invalid, or any error
occured trying to load the JDOManager configuration/mapping.public ClassLoader getClassLoader()
public EntityResolver getEntityResolver()
public InputSource getConfiguration()
public void setCallbackInterceptor(CallbackInterceptor callback)
callback
- The callback interceptor, null if disabledpublic CallbackInterceptor getCallbackInterceptor()
public void setInstanceFactory(InstanceFactory factory)
factory
- The instance factory, null to use the defaultpublic InstanceFactory getInstanceFactory()
public void setLockTimeout(int seconds)
seconds
- The lock timeout, specified in secondspublic int getLockTimeout()
public void setDescription(String description)
setDescription
in interface DataObjects
description
- The description of this databasepublic String getDescription()
getDescription
in interface DataObjects
public void setDatabasePooling(boolean pool)
getDatabase()
. If database pooling is enabled, JDOManager
will first search in the pool to see if there is already a database for the
current transaction. If found, it returns the database; if not, it create a
new one, associates it will the transaction and return the newly created
database.
This method should be called before getDatabase()
.pool
- true to enable database poolingpublic boolean getDatabasePooling()
setDatabasePooling(boolean)
public void setAutoStore(boolean autoStore)
autoStore
- True if user prefer all reachable object to be stored
automatically; False if user want only dependent object to be
stored.public boolean isAutoStore()
public String getDatabaseName()
getDatabaseName
in interface DataObjects
public ConnectionFactory getConnectionFactory() throws MappingException
MappingException
- If database can not be instantiated or is not configured.public Database getDatabase() throws PersistenceException
DatabaseNotFoundException
is thrown.getDatabase
in interface DataObjects
PersistenceException
- Database access failed.public Reference getReference()
getReference
in interface Referenceable
Reference
,
ObjectFactory
public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable<?,?> env) throws NamingException
getObjectInstance
in interface ObjectFactory
NamingException
public void close()
Copyright © 2013. All rights reserved.