vgritsenko    2003/08/12 08:55:34

  Modified:    .        status.xml
               store/src/java/org/apache/excalibur/store/impl
                        JispFilesystemStore.java JispKey.java
                        JispStringKey.java
  Log:
        Fix Jisp based persistent store: close database and index files on shutdown
        and re-use existing files on startup.
  
  Revision  Changes    Path
  1.5       +5 -1      avalon-excalibur/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/status.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- status.xml        6 Aug 2003 21:50:02 -0000       1.4
  +++ status.xml        12 Aug 2003 15:55:34 -0000      1.5
  @@ -17,8 +17,12 @@
       <person name="Vadim Gritsenko" email="[EMAIL PROTECTED]" id="VG"/>
     </devs>
     <release version="@version@" date="@date@">
  +    <action dev="VG" type="fix">
  +      Fix Jisp based persistent store: close database and index files on shutdown
  +      and re-use existing files on startup.
  +    </action>
       <action dev="VG" type="add">
  -      Added Saxon XPath processors to the xmlutil
  +      Added Saxon XPath processors to the xmlutil.
       </action>
       <action dev="PR" type="fix">
         Fixing proxy-based datasource code.
  
  
  
  1.3       +35 -7     
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispFilesystemStore.java
  
  Index: JispFilesystemStore.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispFilesystemStore.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JispFilesystemStore.java  14 Jul 2003 19:06:08 -0000      1.2
  +++ JispFilesystemStore.java  12 Aug 2003 15:55:34 -0000      1.3
  @@ -56,10 +56,12 @@
   import com.coyotegulch.jisp.IndexedObjectDatabase;
   import com.coyotegulch.jisp.KeyNotFound;
   
  +import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.parameters.ParameterException;
   import org.apache.avalon.framework.parameters.Parameterizable;
   import org.apache.avalon.framework.parameters.Parameters;
   import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.excalibur.store.Store;
   
   /**
    * This store is based on the Jisp library
  @@ -71,9 +73,10 @@
    * @version CVS $Id$
    */
   public class JispFilesystemStore extends AbstractJispFilesystemStore
  -    implements org.apache.excalibur.store.Store,
  +    implements Store,
                  ThreadSafe,
  -               Parameterizable {
  +               Parameterizable,
  +               Disposable {
   
       /**
        *  Configure the Component.<br>
  @@ -122,18 +125,22 @@
               getLogger().debug("Initializing JispFilesystemStore");
           }
   
  -        try {
  +        try
  +        {
               final boolean isOld = databaseFile.exists();
               if (getLogger().isDebugEnabled()) 
               {
                   getLogger().debug("initialize(): Datafile exists: " + isOld);
               }
   
  -            m_Index = new BTreeIndex(indexFile.toString(),
  -                                      order, super.getNullKey(), false);
  +            if (!isOld) {
  +                m_Index = new BTreeIndex(indexFile.toString(),
  +                                         order, super.getNullKey(), false);
  +            } else {
  +                m_Index = new BTreeIndex(indexFile.toString());
  +            }
               m_Database = new IndexedObjectDatabase(databaseFile.toString(), !isOld);
               m_Database.attachIndex(m_Index);
  -
           } 
           catch (KeyNotFound ignore) 
           {
  @@ -144,4 +151,25 @@
           }
       }
   
  +    public void dispose()
  +    {
  +        try
  +        {
  +            getLogger().debug("Disposing");
  +
  +            if (m_Index != null)
  +            {
  +                m_Index.close();
  +            }
  +
  +            if (m_Database != null)
  +            {
  +                m_Database.close();
  +            }
  +        }
  +        catch (Exception e) 
  +        {
  +            getLogger().error("dispose(..) Exception", e);
  +        }
  +    }
   }
  
  
  
  1.4       +1 -4      
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispKey.java
  
  Index: JispKey.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispKey.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JispKey.java      14 Jul 2003 18:17:23 -0000      1.3
  +++ JispKey.java      12 Aug 2003 15:55:34 -0000      1.4
  @@ -181,6 +181,3 @@
           return m_Key;
       }
   }
  -
  -
  -
  
  
  
  1.9       +2 -2      
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispStringKey.java
  
  Index: JispStringKey.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispStringKey.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JispStringKey.java        14 Jul 2003 13:58:19 -0000      1.8
  +++ JispStringKey.java        12 Aug 2003 15:55:34 -0000      1.9
  @@ -68,7 +68,7 @@
   
       private String m_Key;
   
  -    static private final String INIT = new String("");
  +    static private final String INIT = "";
       
       /**
        *  Constructor for the JispStringKey object
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to