org.apache.slide.store
Class ExtendedStore

java.lang.Object
  extended byorg.apache.slide.common.AbstractServiceBase
      extended byorg.apache.slide.common.AbstractSimpleService
          extended byorg.apache.slide.store.AbstractStore
              extended byorg.apache.slide.store.ExtendedStore
All Implemented Interfaces:
ContentStore, LockStore, NodeStore, RevisionDescriptorsStore, RevisionDescriptorStore, SecurityStore, SequenceStore, Service, Store, javax.transaction.xa.XAResource
Direct Known Subclasses:
BindingStore

public class ExtendedStore
extends AbstractStore

Store that allows for transactional caching of data. Takes over much modified code from StandardStore. That's why Remy is listed as author as well.

Version:
$Revision: 1.18 $

Nested Class Summary
protected  class ExtendedStore.TxCacheWrapper
           
protected  class ExtendedStore.TxContentCacheWrapper
           
 
Field Summary
protected  java.lang.ThreadLocal activeTransactionBranch
           
protected static java.lang.String CACHE_MODE_FULL
           
protected static java.lang.String CACHE_MODE_LOCAL
           
protected static java.lang.String CACHE_MODE_NO_GLOBAL_IN_TX
           
protected static java.lang.String CACHE_MODE_OFF
           
protected static java.lang.String CACHE_MODE_PARAMETER
           
protected static java.lang.String CONTENT_CACHE_BYTES_PARAMETER
           
protected  ExtendedStore.TxContentCacheWrapper contentCache
           
(package private)  long contentCacheBytes
           
(package private)  boolean contentCachingEnabled
           
protected static java.lang.String DEFAULT_CACHE_MODE
           
protected static long DEFAULT_CONTENT_CACHE_BYTES
           
protected static boolean DEFAULT_ENABLE_CONTENT_CACHING
           
protected static int DEFAULT_GLOBAL_CONTENT_CACHE_SIZE
           
protected static int DEFAULT_GLOBAL_DESCRIPTOR_CACHE_SIZE
           
protected static int DEFAULT_GLOBAL_DESCRIPTORS_CACHE_SIZE
           
protected static int DEFAULT_GLOBAL_LOCK_CACHE_SIZE
           
protected static int DEFAULT_GLOBAL_PERMISSION_CACHE_SIZE
           
protected static long DEFAULT_MAX_CONTENT_BYTES_PER_ENTRY
           
protected static int DEFAULT_OBJECT_GLOBAL_CACHE_SIZE
           
protected static int DEFAULT_TLOCK_TIMEOUT
           
protected static long DEFAULT_TX_CONTENT_CACHE_BYTES
           
protected static int DEFAULT_TX_CONTENT_CACHE_SIZE
           
protected  ExtendedStore.TxCacheWrapper descriptorCache
           
protected  ExtendedStore.TxCacheWrapper descriptorsCache
           
protected static java.lang.String ENABLE_CONTENT_CACHING_PARAMETER
           
protected static java.lang.String GLOBAL_CONTENT_CACHE_SIZE_PARAMETER
           
protected static java.lang.String GLOBAL_DESCRIPTOR_CACHE_SIZE_PARAMETER
           
protected static java.lang.String GLOBAL_DESCRIPTORS_CACHE_SIZE_PARAMETER
           
protected static java.lang.String GLOBAL_LOCK_CACHE_SIZE_PARAMETER
           
protected static java.lang.String GLOBAL_OBJECT_CACHE_SIZE_PARAMETER
           
protected static java.lang.String GLOBAL_PERMISSION_CACHE_SIZE_PARAMETER
           
protected  boolean globalCacheOff
           
(package private)  int globalContentCacheSize
           
(package private)  int globalDescrtiptorCacheSize
           
(package private)  int globalDescrtiptorsCacheSize
           
(package private)  int globalLockCacheSize
           
(package private)  int globalObjectCacheSize
           
(package private)  int globalPermissionCacheSize
           
protected  org.apache.commons.transaction.locking.GenericLockManager lockManager
           
protected  java.lang.ThreadLocal locks
           
protected  ExtendedStore.TxCacheWrapper locksCache
           
protected static java.lang.String MAX_CONTENT_BYTES_PER_ENTRY_PARAMETER
           
(package private)  long maxByteSizePerEntry
           
(package private)  boolean noGlobalCacheInTx
           
protected  ExtendedStore.TxCacheWrapper objectsCache
           
protected  ExtendedStore.TxCacheWrapper permissionsCache
           
protected  long timeout
           
protected static java.lang.String TLOCK_TIMEOUT_PARAMETER
           
protected static java.lang.String TX_CONTENT_CACHE_BYTES_PARAMETER
           
protected static java.lang.String TX_CONTENT_CACHE_SIZE_PARAMETER
           
(package private)  long txContentCacheBytes
           
(package private)  int txContentCacheSize
           
 
Fields inherited from class org.apache.slide.store.AbstractStore
contentIndexer, contentStore, lockStore, nodeStore, parameters, propertiesIndexer, resourceManagers, revisionDescriptorsStore, revisionDescriptorStore, securityStore, sequenceStore
 
Fields inherited from class org.apache.slide.common.AbstractSimpleService
currentContext, rollbackOnly, status, transactionTimeout, TX_IDLE, TX_PREPARED, TX_SUSPENDED
 
Fields inherited from class org.apache.slide.common.AbstractServiceBase
namespace, scope
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
ExtendedStore()
           
 
Method Summary
 void commit(javax.transaction.xa.Xid xid, boolean onePhase)
          Commit the global transaction specified by xid.
 void createObject(Uri uri, ObjectNode object)
          Create a new object in the Descriptors Store.
 void createRevisionContent(Uri uri, NodeRevisionDescriptor revisionDescriptor, NodeRevisionContent revisionContent)
          Create a new revision
 void createRevisionDescriptor(Uri uri, NodeRevisionDescriptor revisionDescriptor)
          Create new revision descriptor.
 void createRevisionDescriptors(Uri uri, NodeRevisionDescriptors revisionDescriptors)
          Create new revision descriptors.
 void end(javax.transaction.xa.Xid xid, int flags)
          Ends the work performed on behalf of a transaction branch.
 java.util.Enumeration enumerateLocks(Uri uri)
          Enumerate locks on an object.
 java.util.Enumeration enumeratePermissions(Uri uri)
          Enumerate locks on an object.
 void exclusiveTransientLock(java.lang.String uri)
          Acquires an exclusive access lock to a resource.
protected  void fatalError(java.lang.Error e)
           
protected  void fatalError(java.lang.RuntimeException re)
           
protected  java.util.Vector fillLocksCache(Uri uri)
           
protected  java.util.Vector fillPermissionsCache(Uri uri)
           
 void forget(javax.transaction.xa.Xid xid)
          Tell the resource manager to forget about a heuristically completed transaction branch.
 void grantPermission(Uri uri, NodePermission permission)
          Store an object permissions in the Descriptors Store.
protected  void init(int globalObjectCacheSize, int globalPermissionCacheSize, int globalLockCacheSize, int globalDescrtiptorsCacheSize, int globalDescrtiptorCacheSize, boolean contentCachingEnabled, int globalContentCacheSize, long contentCacheBytes, int txContentCacheSize, long txContentCacheBytes, long maxByteSizePerEntry, boolean noGlobalCacheInTx)
           
 void killLock(Uri uri, NodeLock lock)
          Kills a lock.
 int prepare(javax.transaction.xa.Xid xid)
          Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.
 void putLock(Uri uri, NodeLock lock)
          Puts a lock on a subject.
protected  void releaseTransientLocks()
           
 void removeLock(Uri uri, NodeLock lock)
          Removes (cancels) a lock.
 void removeObject(Uri uri, ObjectNode object)
          Remove an object from the Descriptors Store.
 void removeObjectFromCache(java.lang.Object key)
          Removes an object from all internal caches.
 void removeRevisionContent(Uri uri, NodeRevisionDescriptor revisionDescriptor)
          Remove revision.
 void removeRevisionDescriptor(Uri uri, NodeRevisionNumber number)
          Remove revision descriptor.
 void removeRevisionDescriptors(Uri uri)
          Remove revision descriptors.
 void renewLock(Uri uri, NodeLock lock)
          Renews a lock.
 void resetCache()
           
 ObjectNode retrieveObject(Uri uri)
          Retrive an object from the Descriptors Store.
 NodeRevisionContent retrieveRevisionContent(Uri uri, NodeRevisionDescriptor revisionDescriptor)
          Retrive revision content.
 NodeRevisionDescriptor retrieveRevisionDescriptor(Uri uri, NodeRevisionNumber revisionNumber)
          Retrieve revision descriptor.
 NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
          Retrieve a revision descriptors.
 void revokePermission(Uri uri, NodePermission permission)
          Store an object permissions in the Descriptors Store.
 void revokePermissions(Uri uri)
          Revoke all the permissions on the object.
 void rollback(javax.transaction.xa.Xid xid)
          Inform the resource manager to roll back work done on behalf of a transaction branch.
 void setParameters(java.util.Hashtable parameters)
          Remeber the store parameters to initialise the default child stores on request
 void start(javax.transaction.xa.Xid xid, int flags)
          Start work on behalf of a transaction branch specified in xid.
 void storeObject(Uri uri, ObjectNode object)
          Store an object in the Descriptors Store.
 void storeRevisionContent(Uri uri, NodeRevisionDescriptor revisionDescriptor, NodeRevisionContent revisionContent)
          Modify the latest revision of an object.
 void storeRevisionDescriptor(Uri uri, NodeRevisionDescriptor revisionDescriptor)
          Update revision descriptor.
 void storeRevisionDescriptors(Uri uri, NodeRevisionDescriptors revisionDescriptors)
          Update revision descriptors.
 java.lang.String toString()
           
 
Methods inherited from class org.apache.slide.store.AbstractStore
addResourceManager, connect, connect, createSequence, delist, delist, delist, disconnect, enlist, enlist, getContentIndexer, getName, getParameter, getPropertiesIndexer, initialize, isConnected, isForceStoreEnlistment, isSequenceSupported, nextSequenceValue, reset, sequenceExists, setContentIndexer, setContentStore, setLockStore, setName, setNamespace, setNodeStore, setPropertiesIndexer, setRevisionDescriptorsStore, setRevisionDescriptorStore, setRollbackOnly, setScope, setSecurityStore, setSequenceStore, useBinding
 
Methods inherited from class org.apache.slide.common.AbstractSimpleService
getTransactionTimeout, isSameRM, recover, setTransactionTimeout
 
Methods inherited from class org.apache.slide.common.AbstractServiceBase
cacheResults, connectIfNeeded, connectIfNeeded, getLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.slide.common.Service
cacheResults, connectIfNeeded, connectIfNeeded, getLogger
 
Methods inherited from interface javax.transaction.xa.XAResource
getTransactionTimeout, isSameRM, recover, setTransactionTimeout
 

Field Detail

DEFAULT_OBJECT_GLOBAL_CACHE_SIZE

protected static final int DEFAULT_OBJECT_GLOBAL_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_OBJECT_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_OBJECT_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_GLOBAL_PERMISSION_CACHE_SIZE

protected static final int DEFAULT_GLOBAL_PERMISSION_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_PERMISSION_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_PERMISSION_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_GLOBAL_LOCK_CACHE_SIZE

protected static final int DEFAULT_GLOBAL_LOCK_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_LOCK_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_LOCK_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_GLOBAL_DESCRIPTORS_CACHE_SIZE

protected static final int DEFAULT_GLOBAL_DESCRIPTORS_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_DESCRIPTORS_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_DESCRIPTORS_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_GLOBAL_DESCRIPTOR_CACHE_SIZE

protected static final int DEFAULT_GLOBAL_DESCRIPTOR_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_DESCRIPTOR_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_DESCRIPTOR_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_GLOBAL_CONTENT_CACHE_SIZE

protected static final int DEFAULT_GLOBAL_CONTENT_CACHE_SIZE
See Also:
Constant Field Values

GLOBAL_CONTENT_CACHE_SIZE_PARAMETER

protected static final java.lang.String GLOBAL_CONTENT_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_ENABLE_CONTENT_CACHING

protected static final boolean DEFAULT_ENABLE_CONTENT_CACHING
See Also:
Constant Field Values

ENABLE_CONTENT_CACHING_PARAMETER

protected static final java.lang.String ENABLE_CONTENT_CACHING_PARAMETER
See Also:
Constant Field Values

DEFAULT_TX_CONTENT_CACHE_SIZE

protected static final int DEFAULT_TX_CONTENT_CACHE_SIZE
See Also:
Constant Field Values

TX_CONTENT_CACHE_SIZE_PARAMETER

protected static final java.lang.String TX_CONTENT_CACHE_SIZE_PARAMETER
See Also:
Constant Field Values

DEFAULT_CONTENT_CACHE_BYTES

protected static final long DEFAULT_CONTENT_CACHE_BYTES
See Also:
Constant Field Values

CONTENT_CACHE_BYTES_PARAMETER

protected static final java.lang.String CONTENT_CACHE_BYTES_PARAMETER
See Also:
Constant Field Values

DEFAULT_TX_CONTENT_CACHE_BYTES

protected static final long DEFAULT_TX_CONTENT_CACHE_BYTES
See Also:
Constant Field Values

TX_CONTENT_CACHE_BYTES_PARAMETER

protected static final java.lang.String TX_CONTENT_CACHE_BYTES_PARAMETER
See Also:
Constant Field Values

DEFAULT_MAX_CONTENT_BYTES_PER_ENTRY

protected static final long DEFAULT_MAX_CONTENT_BYTES_PER_ENTRY
See Also:
Constant Field Values

MAX_CONTENT_BYTES_PER_ENTRY_PARAMETER

protected static final java.lang.String MAX_CONTENT_BYTES_PER_ENTRY_PARAMETER
See Also:
Constant Field Values

CACHE_MODE_PARAMETER

protected static final java.lang.String CACHE_MODE_PARAMETER
See Also:
Constant Field Values

CACHE_MODE_FULL

protected static final java.lang.String CACHE_MODE_FULL
See Also:
Constant Field Values

CACHE_MODE_LOCAL

protected static final java.lang.String CACHE_MODE_LOCAL
See Also:
Constant Field Values

CACHE_MODE_NO_GLOBAL_IN_TX

protected static final java.lang.String CACHE_MODE_NO_GLOBAL_IN_TX
See Also:
Constant Field Values

CACHE_MODE_OFF

protected static final java.lang.String CACHE_MODE_OFF
See Also:
Constant Field Values

DEFAULT_CACHE_MODE

protected static final java.lang.String DEFAULT_CACHE_MODE
See Also:
Constant Field Values

DEFAULT_TLOCK_TIMEOUT

protected static final int DEFAULT_TLOCK_TIMEOUT
See Also:
Constant Field Values

TLOCK_TIMEOUT_PARAMETER

protected static final java.lang.String TLOCK_TIMEOUT_PARAMETER
See Also:
Constant Field Values

activeTransactionBranch

protected java.lang.ThreadLocal activeTransactionBranch

contentCache

protected ExtendedStore.TxContentCacheWrapper contentCache

objectsCache

protected ExtendedStore.TxCacheWrapper objectsCache

permissionsCache

protected ExtendedStore.TxCacheWrapper permissionsCache

locksCache

protected ExtendedStore.TxCacheWrapper locksCache

descriptorsCache

protected ExtendedStore.TxCacheWrapper descriptorsCache

descriptorCache

protected ExtendedStore.TxCacheWrapper descriptorCache

lockManager

protected org.apache.commons.transaction.locking.GenericLockManager lockManager

locks

protected java.lang.ThreadLocal locks

timeout

protected long timeout

globalCacheOff

protected boolean globalCacheOff

globalObjectCacheSize

int globalObjectCacheSize

globalPermissionCacheSize

int globalPermissionCacheSize

globalLockCacheSize

int globalLockCacheSize

globalDescrtiptorsCacheSize

int globalDescrtiptorsCacheSize

globalDescrtiptorCacheSize

int globalDescrtiptorCacheSize

contentCachingEnabled

boolean contentCachingEnabled

globalContentCacheSize

int globalContentCacheSize

contentCacheBytes

long contentCacheBytes

txContentCacheSize

int txContentCacheSize

txContentCacheBytes

long txContentCacheBytes

maxByteSizePerEntry

long maxByteSizePerEntry

noGlobalCacheInTx

boolean noGlobalCacheInTx
Constructor Detail

ExtendedStore

public ExtendedStore()
Method Detail

setParameters

public void setParameters(java.util.Hashtable parameters)
                   throws ServiceParameterErrorException,
                          ServiceParameterMissingException
Description copied from class: AbstractStore
Remeber the store parameters to initialise the default child stores on request

Specified by:
setParameters in interface Service
Overrides:
setParameters in class AbstractStore
Parameters:
parameters - Hashtable containing the parameters' name and associated value
Throws:
ServiceParameterMissingException - Service parameter missing
ServiceParameterErrorException - Incorrect service parameter

resetCache

public void resetCache()

removeObjectFromCache

public void removeObjectFromCache(java.lang.Object key)
Removes an object from all internal caches.

Parameters:
key - the key under which the object is stored in the caches.

exclusiveTransientLock

public void exclusiveTransientLock(java.lang.String uri)
                            throws ServiceAccessException
Description copied from interface: Store
Acquires an exclusive access lock to a resource. This lock is transient, i.e. it will automatically be released when your transaction terminates.

Specified by:
exclusiveTransientLock in interface Store
Overrides:
exclusiveTransientLock in class AbstractStore
Throws:
ServiceAccessException

retrieveRevisionContent

public NodeRevisionContent retrieveRevisionContent(Uri uri,
                                                   NodeRevisionDescriptor revisionDescriptor)
                                            throws ServiceAccessException,
                                                   RevisionNotFoundException
Description copied from class: AbstractStore
Retrive revision content.

Specified by:
retrieveRevisionContent in interface ContentStore
Overrides:
retrieveRevisionContent in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
Throws:
ServiceAccessException
RevisionNotFoundException

createRevisionContent

public void createRevisionContent(Uri uri,
                                  NodeRevisionDescriptor revisionDescriptor,
                                  NodeRevisionContent revisionContent)
                           throws ServiceAccessException,
                                  RevisionAlreadyExistException
Description copied from class: AbstractStore
Create a new revision

Specified by:
createRevisionContent in interface ContentStore
Overrides:
createRevisionContent in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
revisionContent - Node revision content
Throws:
ServiceAccessException
RevisionAlreadyExistException

storeRevisionContent

public void storeRevisionContent(Uri uri,
                                 NodeRevisionDescriptor revisionDescriptor,
                                 NodeRevisionContent revisionContent)
                          throws ServiceAccessException,
                                 RevisionNotFoundException
Description copied from class: AbstractStore
Modify the latest revision of an object.

Specified by:
storeRevisionContent in interface ContentStore
Overrides:
storeRevisionContent in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
revisionContent - Node revision content
Throws:
ServiceAccessException
RevisionNotFoundException

removeRevisionContent

public void removeRevisionContent(Uri uri,
                                  NodeRevisionDescriptor revisionDescriptor)
                           throws ServiceAccessException
Description copied from class: AbstractStore
Remove revision.

Specified by:
removeRevisionContent in interface ContentStore
Overrides:
removeRevisionContent in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
Throws:
ServiceAccessException

retrieveObject

public ObjectNode retrieveObject(Uri uri)
                          throws ServiceAccessException,
                                 ObjectNotFoundException
Description copied from class: AbstractStore
Retrive an object from the Descriptors Store.

Specified by:
retrieveObject in interface NodeStore
Overrides:
retrieveObject in class AbstractStore
Parameters:
uri - Uri of the object we want to retrieve
Throws:
ObjectNotFoundException - The object to retrieve was not found
ServiceAccessException - Error accessing the Descriptors Store

storeObject

public void storeObject(Uri uri,
                        ObjectNode object)
                 throws ServiceAccessException,
                        ObjectNotFoundException
Description copied from class: AbstractStore
Store an object in the Descriptors Store.

Specified by:
storeObject in interface NodeStore
Overrides:
storeObject in class AbstractStore
Parameters:
object - Object to update
Throws:
ObjectNotFoundException - The object to update was not found
ServiceAccessException - Error accessing the Descriptors Store

createObject

public void createObject(Uri uri,
                         ObjectNode object)
                  throws ServiceAccessException,
                         ObjectAlreadyExistsException
Description copied from class: AbstractStore
Create a new object in the Descriptors Store.

Specified by:
createObject in interface NodeStore
Overrides:
createObject in class AbstractStore
Parameters:
object - SlideObject
uri - Uri of the object we want to create
Throws:
ServiceAccessException - Error accessing the Descriptors Store
ObjectAlreadyExistsException - An object already exists at this Uri

removeObject

public void removeObject(Uri uri,
                         ObjectNode object)
                  throws ServiceAccessException,
                         ObjectNotFoundException
Description copied from class: AbstractStore
Remove an object from the Descriptors Store.

Specified by:
removeObject in interface NodeStore
Overrides:
removeObject in class AbstractStore
Parameters:
object - Object to remove
Throws:
ObjectNotFoundException - The object to remove was not found
ServiceAccessException - Error accessing the Descriptors Store

grantPermission

public void grantPermission(Uri uri,
                            NodePermission permission)
                     throws ServiceAccessException
Description copied from class: AbstractStore
Store an object permissions in the Descriptors Store.

Specified by:
grantPermission in interface SecurityStore
Overrides:
grantPermission in class AbstractStore
Parameters:
permission - Permission we want to create
Throws:
ServiceAccessException - Error accessing the Descriptors Store

revokePermission

public void revokePermission(Uri uri,
                             NodePermission permission)
                      throws ServiceAccessException
Description copied from class: AbstractStore
Store an object permissions in the Descriptors Store.

Specified by:
revokePermission in interface SecurityStore
Overrides:
revokePermission in class AbstractStore
Parameters:
permission - Permission we want to create
Throws:
ServiceAccessException - Error accessing the Descriptors Store

revokePermissions

public void revokePermissions(Uri uri)
                       throws ServiceAccessException
Description copied from class: AbstractStore
Revoke all the permissions on the object.

Specified by:
revokePermissions in interface SecurityStore
Overrides:
revokePermissions in class AbstractStore
Parameters:
uri - Uri of the object
Throws:
ServiceAccessException - Error accessing the Descriptors Store

enumeratePermissions

public java.util.Enumeration enumeratePermissions(Uri uri)
                                           throws ServiceAccessException
Description copied from class: AbstractStore
Enumerate locks on an object.

Specified by:
enumeratePermissions in interface SecurityStore
Overrides:
enumeratePermissions in class AbstractStore
Parameters:
uri - Uri of the subject
Returns:
Enumeration List of locks which have been put on the subject
Throws:
ServiceAccessException - Service access error

putLock

public void putLock(Uri uri,
                    NodeLock lock)
             throws ServiceAccessException
Description copied from class: AbstractStore
Puts a lock on a subject.

Specified by:
putLock in interface LockStore
Overrides:
putLock in class AbstractStore
Parameters:
lock - Lock token
Throws:
ServiceAccessException - Service access error

renewLock

public void renewLock(Uri uri,
                      NodeLock lock)
               throws ServiceAccessException,
                      LockTokenNotFoundException
Description copied from class: AbstractStore
Renews a lock.

Specified by:
renewLock in interface LockStore
Overrides:
renewLock in class AbstractStore
Parameters:
lock - Token to renew
Throws:
LockTokenNotFoundException - Lock token was not found
ServiceAccessException - Service access error

removeLock

public void removeLock(Uri uri,
                       NodeLock lock)
                throws ServiceAccessException,
                       LockTokenNotFoundException
Description copied from class: AbstractStore
Removes (cancels) a lock.

Specified by:
removeLock in interface LockStore
Overrides:
removeLock in class AbstractStore
Parameters:
lock - Token to remove
Throws:
ServiceAccessException - Service access error
LockTokenNotFoundException - Lock token was not found

killLock

public void killLock(Uri uri,
                     NodeLock lock)
              throws ServiceAccessException,
                     LockTokenNotFoundException
Description copied from class: AbstractStore
Kills a lock.

Specified by:
killLock in interface LockStore
Overrides:
killLock in class AbstractStore
Parameters:
lock - Token to remove
Throws:
ServiceAccessException - Service access error
LockTokenNotFoundException - Lock token was not found

enumerateLocks

public java.util.Enumeration enumerateLocks(Uri uri)
                                     throws ServiceAccessException
Description copied from class: AbstractStore
Enumerate locks on an object.

Specified by:
enumerateLocks in interface LockStore
Overrides:
enumerateLocks in class AbstractStore
Parameters:
uri - Uri of the subject
Returns:
Enumeration List of locks which have been put on the subject
Throws:
ServiceAccessException - Service access error

retrieveRevisionDescriptors

public NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
                                                    throws ServiceAccessException,
                                                           RevisionDescriptorNotFoundException
Description copied from class: AbstractStore
Retrieve a revision descriptors.

Specified by:
retrieveRevisionDescriptors in interface RevisionDescriptorsStore
Overrides:
retrieveRevisionDescriptors in class AbstractStore
Parameters:
uri - Uri
Throws:
RevisionDescriptorNotFoundException - Revision descriptor was not found
ServiceAccessException - Service access error

createRevisionDescriptors

public void createRevisionDescriptors(Uri uri,
                                      NodeRevisionDescriptors revisionDescriptors)
                               throws ServiceAccessException
Description copied from class: AbstractStore
Create new revision descriptors.

Specified by:
createRevisionDescriptors in interface RevisionDescriptorsStore
Overrides:
createRevisionDescriptors in class AbstractStore
Parameters:
uri - Uri
revisionDescriptors - Node revision descriptors
Throws:
ServiceAccessException - Service access error

storeRevisionDescriptors

public void storeRevisionDescriptors(Uri uri,
                                     NodeRevisionDescriptors revisionDescriptors)
                              throws ServiceAccessException,
                                     RevisionDescriptorNotFoundException
Description copied from class: AbstractStore
Update revision descriptors.

Specified by:
storeRevisionDescriptors in interface RevisionDescriptorsStore
Overrides:
storeRevisionDescriptors in class AbstractStore
Parameters:
uri - Uri
revisionDescriptors - Node revision descriptors
Throws:
RevisionDescriptorNotFoundException - Revision descriptor was not found
ServiceAccessException - Service access error

removeRevisionDescriptors

public void removeRevisionDescriptors(Uri uri)
                               throws ServiceAccessException
Description copied from class: AbstractStore
Remove revision descriptors.

Specified by:
removeRevisionDescriptors in interface RevisionDescriptorsStore
Overrides:
removeRevisionDescriptors in class AbstractStore
Parameters:
uri - Uri
Throws:
ServiceAccessException - Service access error

retrieveRevisionDescriptor

public NodeRevisionDescriptor retrieveRevisionDescriptor(Uri uri,
                                                         NodeRevisionNumber revisionNumber)
                                                  throws ServiceAccessException,
                                                         RevisionDescriptorNotFoundException
Description copied from class: AbstractStore
Retrieve revision descriptor.

Specified by:
retrieveRevisionDescriptor in interface RevisionDescriptorStore
Overrides:
retrieveRevisionDescriptor in class AbstractStore
Parameters:
uri - uri
revisionNumber - Node revision number
Throws:
ServiceAccessException
RevisionDescriptorNotFoundException

createRevisionDescriptor

public void createRevisionDescriptor(Uri uri,
                                     NodeRevisionDescriptor revisionDescriptor)
                              throws ServiceAccessException
Description copied from class: AbstractStore
Create new revision descriptor.

Specified by:
createRevisionDescriptor in interface RevisionDescriptorStore
Overrides:
createRevisionDescriptor in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
Throws:
ServiceAccessException - Service access error

storeRevisionDescriptor

public void storeRevisionDescriptor(Uri uri,
                                    NodeRevisionDescriptor revisionDescriptor)
                             throws ServiceAccessException,
                                    RevisionDescriptorNotFoundException
Description copied from class: AbstractStore
Update revision descriptor.

Specified by:
storeRevisionDescriptor in interface RevisionDescriptorStore
Overrides:
storeRevisionDescriptor in class AbstractStore
Parameters:
uri - Uri
revisionDescriptor - Node revision descriptor
Throws:
ServiceAccessException - Service access error
RevisionDescriptorNotFoundException - Revision descriptor was not found

removeRevisionDescriptor

public void removeRevisionDescriptor(Uri uri,
                                     NodeRevisionNumber number)
                              throws ServiceAccessException
Description copied from class: AbstractStore
Remove revision descriptor.

Specified by:
removeRevisionDescriptor in interface RevisionDescriptorStore
Overrides:
removeRevisionDescriptor in class AbstractStore
Parameters:
uri - Uri
Throws:
ServiceAccessException - Service access error

forget

public void forget(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Tell the resource manager to forget about a heuristically completed transaction branch.

Specified by:
forget in interface javax.transaction.xa.XAResource
Overrides:
forget in class AbstractStore
Parameters:
xid - A global transaction identifier
Throws:
javax.transaction.xa.XAException - An error has occurred. Possible exception values are XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

rollback

public void rollback(javax.transaction.xa.Xid xid)
              throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Inform the resource manager to roll back work done on behalf of a transaction branch.

Specified by:
rollback in interface javax.transaction.xa.XAResource
Overrides:
rollback in class AbstractStore
Parameters:
xid - A global transaction identifier
Throws:
javax.transaction.xa.XAException - An error has occurred

commit

public void commit(javax.transaction.xa.Xid xid,
                   boolean onePhase)
            throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Commit the global transaction specified by xid.

Specified by:
commit in interface javax.transaction.xa.XAResource
Overrides:
commit in class AbstractStore
Parameters:
xid - A global transaction identifier
onePhase - If true, the resource manager should use a one-phase commit protocol to commit the work done on behalf of xid.
Throws:
javax.transaction.xa.XAException - An error has occurred. Possible XAExceptions are XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO. If the resource manager did not commit the transaction and the paramether onePhase is set to true, the resource manager may throw one of the XA_RB* exceptions. Upon return, the resource manager has rolled back the branch's work and has released all held resources.

prepare

public int prepare(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.

Specified by:
prepare in interface javax.transaction.xa.XAResource
Overrides:
prepare in class AbstractStore
Parameters:
xid - A global transaction identifier
Returns:
A value indicating the resource manager's vote on the outcome of the transaction. The possible values are: XA_RDONLY or XA_OK. If the resource manager wants to roll back the transaction, it should do so by raising an appropriate XAException in the prepare method.
Throws:
javax.transaction.xa.XAException - An error has occurred. Possible exception values are: XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

start

public void start(javax.transaction.xa.Xid xid,
                  int flags)
           throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Start work on behalf of a transaction branch specified in xid.

Specified by:
start in interface javax.transaction.xa.XAResource
Overrides:
start in class AbstractStore
Parameters:
xid - A global transaction identifier to be associated with the resource
flags - One of TMNOFLAGS, TMJOIN, or TMRESUME
Throws:
javax.transaction.xa.XAException - An error has occurred. Possible exceptions are XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_DUPID, XAER_OUTSIDE, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

end

public void end(javax.transaction.xa.Xid xid,
                int flags)
         throws javax.transaction.xa.XAException
Description copied from class: AbstractStore
Ends the work performed on behalf of a transaction branch.

Specified by:
end in interface javax.transaction.xa.XAResource
Overrides:
end in class AbstractStore
Parameters:
xid - A global transaction identifier that is the same as what was used previously in the start method.
flags - One of TMSUCCESS, TMFAIL, or TMSUSPEND
Throws:
javax.transaction.xa.XAException - An error has occurred. Possible XAException values are XAER_RMERR, XAER_RMFAILED, XAER_NOTA, XAER_INVAL, XAER_PROTO, or XA_RB*.

toString

public java.lang.String toString()

releaseTransientLocks

protected void releaseTransientLocks()

fillPermissionsCache

protected java.util.Vector fillPermissionsCache(Uri uri)
                                         throws ServiceAccessException
Throws:
ServiceAccessException

fillLocksCache

protected java.util.Vector fillLocksCache(Uri uri)
                                   throws ServiceAccessException
Throws:
ServiceAccessException

init

protected void init(int globalObjectCacheSize,
                    int globalPermissionCacheSize,
                    int globalLockCacheSize,
                    int globalDescrtiptorsCacheSize,
                    int globalDescrtiptorCacheSize,
                    boolean contentCachingEnabled,
                    int globalContentCacheSize,
                    long contentCacheBytes,
                    int txContentCacheSize,
                    long txContentCacheBytes,
                    long maxByteSizePerEntry,
                    boolean noGlobalCacheInTx)

fatalError

protected void fatalError(java.lang.Error e)

fatalError

protected void fatalError(java.lang.RuntimeException re)