[exo-jcr-commits] exo-jcr SVN: r3306 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/storage/value and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 21 03:09:28 EDT 2010


Author: sergiykarpenko
Date: 2010-10-21 03:09:28 -0400 (Thu, 21 Oct 2010)
New Revision: 3306

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableSimpleFileValueStorage.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableTreeFileValueStorage.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileValueStorage.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/SimpleFileValueStorage.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/TreeFileValueStorage.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/JDBCWDCTest.java
Log:
EXOJCR-999: Make FileValueStorage use common per-repository FileCleaner

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -513,7 +513,9 @@
    {
 
       registerComponentInstance(config);
-
+      // WorkspaceFileCleanerHolder - is a common holder for all workspaces. 
+      // It is used to initialize FileValueStorage
+      registerComponentImplementation(WorkspaceFileCleanerHolder.class);
       registerWorkspacesComponents();
       registerRepositoryComponents();
    }
@@ -524,7 +526,6 @@
 
       registerComponentImplementation(RepositoryIndexSearcherHolder.class);
 
-      registerComponentImplementation(WorkspaceFileCleanerHolder.class);
       registerComponentImplementation(LocationFactory.class);
       registerComponentImplementation(ValueFactoryImpl.class);
 

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -24,6 +24,8 @@
 import org.exoplatform.services.jcr.config.ValueStorageFilterEntry;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
+import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
+import org.exoplatform.services.jcr.impl.util.io.WorkspaceFileCleanerHolder;
 import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
 import org.exoplatform.services.jcr.storage.value.ValueIOChannel;
 import org.exoplatform.services.jcr.storage.value.ValuePluginFilter;
@@ -60,7 +62,8 @@
     */
    private final ValueDataResourceHolder resorcesHolder;
 
-   public StandaloneStoragePluginProvider(WorkspaceEntry wsConfig) throws RepositoryConfigurationException, IOException
+   public StandaloneStoragePluginProvider(WorkspaceEntry wsConfig, WorkspaceFileCleanerHolder holder)
+      throws RepositoryConfigurationException, IOException
    {
 
       this.resorcesHolder = new ValueDataResourceHolder();
@@ -82,7 +85,10 @@
             Object o = null;
             try
             {
-               o = Class.forName(storageEntry.getType()).newInstance();
+               o =
+                  Class.forName(storageEntry.getType()).getConstructor(FileCleaner.class).newInstance(
+                     holder.getFileCleaner());
+
             }
             catch (Exception e)
             {

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableSimpleFileValueStorage.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableSimpleFileValueStorage.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableSimpleFileValueStorage.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -21,6 +21,7 @@
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.impl.storage.value.ValueDataResourceHolder;
 import org.exoplatform.services.jcr.impl.storage.value.cas.ValueContentAddressStorage;
+import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 import org.exoplatform.services.jcr.storage.value.ValueIOChannel;
 
 import java.io.IOException;
@@ -40,6 +41,11 @@
 
    private String digestAlgo;
 
+   public CASableSimpleFileValueStorage(FileCleaner cleaner)
+   {
+      super(cleaner);
+   }
+
    @Override
    public void init(Properties props, ValueDataResourceHolder resources) throws IOException,
       RepositoryConfigurationException

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableTreeFileValueStorage.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableTreeFileValueStorage.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/CASableTreeFileValueStorage.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -21,6 +21,7 @@
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.impl.storage.value.ValueDataResourceHolder;
 import org.exoplatform.services.jcr.impl.storage.value.cas.ValueContentAddressStorage;
+import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 
 import java.io.IOException;
 import java.util.Properties;
@@ -38,6 +39,11 @@
 
    private String digestAlgo;
 
+   public CASableTreeFileValueStorage(FileCleaner cleaner)
+   {
+      super(cleaner);
+   }
+
    /**
     * {@inheritDoc}
     */

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileValueStorage.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileValueStorage.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileValueStorage.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -46,7 +46,7 @@
    public final static String PATH = "path";
 
    /**
-    * Temporarory directopry name under stoprage root dir.
+    * Temporary directory name under storage root dir.
     */
    public static final String TEMP_DIR_NAME = "temp";
 
@@ -58,11 +58,10 @@
 
    /**
     * FileValueStorage constructor.
-    * 
     */
-   public FileValueStorage()
+   public FileValueStorage(FileCleaner cleaner)
    {
-      this.cleaner = new FileCleaner(); // TODO use container cleaner
+      this.cleaner = cleaner;
    }
 
    /**

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/SimpleFileValueStorage.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/SimpleFileValueStorage.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/SimpleFileValueStorage.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -18,6 +18,7 @@
  */
 package org.exoplatform.services.jcr.impl.storage.value.fs;
 
+import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 import org.exoplatform.services.jcr.storage.value.ValueIOChannel;
 
 import java.io.IOException;
@@ -32,6 +33,11 @@
 public class SimpleFileValueStorage extends FileValueStorage
 {
 
+   public SimpleFileValueStorage(FileCleaner cleaner)
+   {
+      super(cleaner);
+   }
+
    /**
     * @see org.exoplatform.services.jcr.storage.value.ValueStoragePlugin#openIOChannel()
     */

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/TreeFileValueStorage.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/TreeFileValueStorage.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/TreeFileValueStorage.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -43,8 +43,9 @@
       }
    }
 
-   public TreeFileValueStorage()
+   public TreeFileValueStorage(FileCleaner cleaner)
    {
+      super(cleaner);
       this.cleaner = new TreeFileCleaner(); // TODO use container cleaner
    }
 

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/JDBCWDCTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/JDBCWDCTest.java	2010-10-20 13:24:47 UTC (rev 3305)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/JDBCWDCTest.java	2010-10-21 07:09:28 UTC (rev 3306)
@@ -18,6 +18,17 @@
  */
 package org.exoplatform.services.jcr.impl.storage;
 
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.jcr.PropertyType;
+import javax.naming.InitialContext;
+import javax.naming.Reference;
+import javax.naming.StringRefAddr;
+import javax.sql.DataSource;
+
 import junit.framework.TestCase;
 
 import org.exoplatform.services.jcr.access.AccessControlList;
@@ -35,22 +46,12 @@
 import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
 import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
 import org.exoplatform.services.jcr.impl.storage.value.StandaloneStoragePluginProvider;
+import org.exoplatform.services.jcr.impl.util.io.WorkspaceFileCleanerHolder;
 import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 import org.exoplatform.services.log.LogConfigurationInitializer;
 
-import java.sql.Connection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import javax.jcr.PropertyType;
-import javax.naming.InitialContext;
-import javax.naming.Reference;
-import javax.naming.StringRefAddr;
-import javax.sql.DataSource;
-
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -105,7 +106,7 @@
       // SimpleJNDIContextInitializer.initialize(sourceName, ref);
 
       container =
-         new JDBCWorkspaceDataContainer(config, repositoryEntry, null, new StandaloneStoragePluginProvider(config));
+         new JDBCWorkspaceDataContainer(config, repositoryEntry, null, new StandaloneStoragePluginProvider(config, new WorkspaceFileCleanerHolder()));
 
       Properties logProps = new Properties();
       logProps.put("org.apache.commons.logging.simplelog.defaultlog", "debug");



More information about the exo-jcr-commits mailing list