Package org.exolab.castor.persist

The Castor persistence engine handles object persistence, object caching, transaction concurrency and locking.

See:
          Description

Interface Summary
DepositBox DepositBox is an interface for ClassMolder to access the dirty checking cache of an object.
Lazy Lazy is a place holder interface to indicate that a data object or a Collection in a data object is an Lazy instance.
LazyCGLIB Lazy is a place holder interface to indicate that a data object or a Collection in a data object is an Lazy instance.
TxSynchronizable This interface offers some callback hooks for several different stages during a transaction.
XAResourceSource A data source that wishes to particiate as an XA resource implements this interface.
 

Class Summary
ClassMolder ClassMolder is a binder for one type of data object and its Persistence.
ClassMolderHelper  
DatingService DataService is a helper class for constructing ClassMolders and pairing up ClassMolders which depends and extends the other.
FieldMolder FieldMolder represents a field of a data object class.
FieldMolder.CollectionInfo  
KeyGeneratorFactoryRegistry Registry for KeyGeneratorFactory implementations obtained from the Castor properties file and used by the JDO mapping configuration file.
LockEngine LockEngine is a gateway for all the ClassMolders of a persistence storage.
ObjectLock Read/write locks and lock synchronization on an object.
ObjectLock.LinkedTx Object uses to hold a linked list of transactions holding write locks or waiting for a read/write lock.
OID Object identifier.
OutputLogInterceptor A simple log interceptor that reports all messages to a writer or an output stream.
PersistenceEngineFactory Factory for constructing new persistence engines.
PersistenceFactoryRegistry Registry for PersistenceFactory implementations obtained from the Castor properties file and used by the JDO database configuration file.
PersistenceInfo  
PersistenceInfoGroup  
QueryResults The result of a query in the context of a transaction.
RelationCollection RelationCollection implements Collection It is a lazy Colllection.
SQLRelationLoader SQLRelationLoader is a quick hack for creating and removing relation from a many-to-many relation database from ClassMolder.
XAResourceImpl An XAResource implementation for an XAResourceSource.
 

Exception Summary
ObjectDeletedWaitingForLockException Thrown to indicate that a lock attempt has failed due to object being deleted by a concurrent transaction.
 

Package org.exolab.castor.persist Description

The Castor persistence engine handles object persistence, object caching, transaction concurrency and locking. This package is not used directly by application developer, and includes the interfaces, implementations and persistence exceptions.

Version:
$Revision: 1.2 $ $Date: 2004/02/13 21:13:22 $
Author:
Assaf Arkin

The persistence engine API is used by the application APIs (JDO, CMP, DAX) to implement caching, queries, transactions and concurrency, etc. This layer is shared by all persistence engine and exposes a unified interface for use as a persistence engine for EJB CMP.

An application API will use a org.exolab.castor.persist.TransactionContext in order to perform operations. All operations against the persistence engine are transactional. The persistence engine is obtained through the PersistenceEngineFactory class which returns a LockEngine. The factory requires a factory of persistence SPIs (see SPI.

LockEngine implements a persistence engine that caches objects in memory for performance, and eliminates the number of persistent storage operations. In order to speed up interaction between the engines and the object, ClassMolder is constructed to represent a flat view of the object graph that is efficient to process.

If the application API supports enlistment as an XA resource, it will use XAResourceImpl and implement XAResourceSource for automatic enlistment/delistment with a transaction context.

The remainder of this package are persistence exceptions and concurrency engine implementation.



Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com