org.apache.jackrabbit.core.state
Class DefaultISMLocking

java.lang.Object
  extended by org.apache.jackrabbit.core.state.DefaultISMLocking
All Implemented Interfaces:
ISMLocking

public class DefaultISMLocking
extends Object
implements ISMLocking

Default item state locking strategy. The default strategy is simply to use a single coarse-grained read-write lock over the entire workspace.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.jackrabbit.core.state.ISMLocking
ISMLocking.ReadLock, ISMLocking.WriteLock
 
Constructor Summary
DefaultISMLocking()
           
 
Method Summary
 ISMLocking.ReadLock acquireReadLock(ItemId id)
          Increments the reader count and returns the acquired read lock once there are no more writers or the current writer shares the thread id with this reader.
 ISMLocking.WriteLock acquireWriteLock(ChangeLog changeLog)
          Increments the writer count, sets the writer identifier and returns the acquired write lock once there are no other active readers or writers or the current writer shares the thread id with this writer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultISMLocking

public DefaultISMLocking()
Method Detail

acquireReadLock

public ISMLocking.ReadLock acquireReadLock(ItemId id)
                                    throws InterruptedException
Increments the reader count and returns the acquired read lock once there are no more writers or the current writer shares the thread id with this reader.

Specified by:
acquireReadLock in interface ISMLocking
Parameters:
id - an item id.
Throws:
InterruptedException

acquireWriteLock

public ISMLocking.WriteLock acquireWriteLock(ChangeLog changeLog)
                                      throws InterruptedException
Increments the writer count, sets the writer identifier and returns the acquired write lock once there are no other active readers or writers or the current writer shares the thread id with this writer.

Specified by:
acquireWriteLock in interface ISMLocking
Parameters:
changeLog - the change log
Returns:
the write lock for the given changeLog.
Throws:
InterruptedException - if the thread is interrupted while creating the write lock.


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.