Hello,

 I cannot use the latest James because of Bug#8839.  My PC have
less resources to run the database software, and it is shutdown
at every night.
 I have tried two methods to solve Bug#8839.

  (a)  add wrapper classes of File_Persistent_Object_Repository
      and File_Persistent_Stream_Repository. (These classes are
      part of cornerstone)  See my sample.
       These classes replace AbstractFileRepository#initialize().

  (b)  replace cornerstone.jar with modified version.
      I downloaded a snapshot of 2002-06-04 with cvs, changed
      AbstractFileRepository#initialize(), and built all.
      The patch is cornerstone-kzmi.diff.

 (a) seems to work about mail repository with editing config.xml,
but I couldn't find how to replace class for users repository.
(After restarting of James, user listing/counting failed because of
file-repository bug)
 Also, these classes depend on the implementations of cornerstone
which is referred.

 (b) seems to work well in any repository.  Now I'm using James-cvs
with modified cornerstone.jar.

 In my changes, repository-id part is removed from filename and search-pattern.   It 
violates the compatibility of the filename.
But I think such replacement of the cornerstone would be better
for the quality of James, and I would propose to include such improvement in the next 
measure release.


 Regards,

---
Iwasa Kazmi
package altcornerstone;


import java.io.File;
import org.apache.avalon.cornerstone.blocks.masterstore.RepositoryManager;
import org.apache.avalon.excalibur.io.ExtensionFileFilter;

public class File_Persistent_Object_Repository
    extends 
org.apache.avalon.cornerstone.blocks.masterstore.File_Persistent_Object_Repository
{
        /* replaces AbstractFileRepository#initialize() */
    public void initialize()
        throws Exception
    {
        getLogger().info( "Init " + getClass().getName() + " Store" );

        m_name = RepositoryManager.getName();
        m_extension = getExtensionDecorator();
        m_filter = new ExtensionFileFilter( m_extension );

        final File directory = new File( m_path );
        directory.mkdirs();

        getLogger().info( getClass().getName() + " opened in " + m_path );
    }

}
package altcornerstone;


import java.io.File;
import org.apache.avalon.cornerstone.blocks.masterstore.RepositoryManager;
import org.apache.avalon.excalibur.io.ExtensionFileFilter;


public class File_Persistent_Stream_Repository
    extends 
org.apache.avalon.cornerstone.blocks.masterstore.File_Persistent_Stream_Repository
{
        /* replaces AbstractFileRepository#initialize() */
    public void initialize()
        throws Exception
    {
        getLogger().info( "Init " + getClass().getName() + " Store" );

        m_name = RepositoryManager.getName();
        m_extension = getExtensionDecorator();
        m_filter = new ExtensionFileFilter( m_extension );

        final File directory = new File( m_path );
        directory.mkdirs();

        getLogger().info( getClass().getName() + " opened in " + m_path );
    }

}
diff -Naur 
src-orig/java/org/apache/avalon/cornerstone/blocks/masterstore/AbstractFileRepository.java
 src/java/org/apache/avalon/cornerstone/blocks/masterstore/AbstractFileRepository.java
--- 
src-orig/java/org/apache/avalon/cornerstone/blocks/masterstore/AbstractFileRepository.java
  2002-05-18 18:50:38.000000000 +0900
+++ 
+src/java/org/apache/avalon/cornerstone/blocks/masterstore/AbstractFileRepository.java 
+      2002-12-09 12:24:28.000000000 +0900
@@ -89,7 +89,7 @@
         getLogger().info( "Init " + getClass().getName() + " Store" );
 
         m_name = RepositoryManager.getName();
-        m_extension = "." + m_name + getExtensionDecorator();
+        m_extension = getExtensionDecorator();
         m_filter = new ExtensionFileFilter( m_extension );
 
         final File directory = new File( m_path );

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

Reply via email to