You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by bu...@apache.org on 2004/11/10 07:09:01 UTC

DO NOT REPLY [Bug 32143] New: - [PATCH] Lock Framework - allows custom lock mechanism

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=32143>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=32143

[PATCH] Lock Framework - allows custom lock mechanism

           Summary: [PATCH] Lock Framework - allows custom lock mechanism
           Product: Lucene
           Version: unspecified
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Store
        AssignedTo: lucene-dev@jakarta.apache.org
        ReportedBy: lucene-list-dev@webdoyen.com


Proposal:  Pluggable Lock Framework for Lucene
Date:      Nov 2004
Developer: Jeff Patterson (jeffATwebdoyen.com - http://www.webdoyen.com)

------

Abstract:  A framework to allow Lucene users to override the default
FileSystem locking mechanism with a custom lock mechanism.

A Lucene user may develop a new class that extends 
org.apache.lucene.store.Lock and implement bodies for the following
methods:
    public boolean obtain()    - to obtain custom lock
    public boolean isLocked()  - to detect custom lock
    public void release()      - to release custom lock

NOTE: When implementing these methods, the developer should make sure to 
use the this.getLockName() method on the Lock to identify which lock
is being manipulated (see Modified Files below for more).

After developed, the new class must be added to the classpath (along
with any other supporting classes/libraries needed by the new class),
and the Lucene framework must be alerted of the new class by way of
the "org.apache.lucene.lockClass" -D System property.  Example:

   java -Dorg.apache.lucene.lockClass=foo.MyCustomLocker LuceneTest

------

Modified Files:  The following files were modified to support 
this framework (DIFF files at end):

- org.apache.lucene.store.Lock
  The member "lockName" and an accompanying protected getter and
  setter were added to this class to support naming the lock.  This
  is transparent to the default lock mechanism and is only useful
  when writing a custom lock.

- org.apache.lucene.store.FSDirectory
  Instead of instantiating a default Lock, this class now checks
  to see if an overridden Lock mechanism is provided, and if so
  asks the LockFactory (see below) to provide an overridden Lock
  class.

New Files:  The following files were added to support this framework:

- org.apache.lucene.store.LockFactory
  This class is used to reflect and instantiate by name the custom
  Lock implementation.  Error handing should be modified in this
  class, but that would have required a more extensive code overhaul.
  The javadocs for the LockFactory contain a skeleton Java file for
  a custom lock implementation.

------

---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-dev-help@jakarta.apache.org