[exo-jcr-commits] exo-jcr SVN: r3349 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/core/lock and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Oct 26 11:33:04 EDT 2010


Author: sergiykarpenko
Date: 2010-10-26 11:33:02 -0400 (Tue, 26 Oct 2010)
New Revision: 3349

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryInfo.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/proccess/WorkerService.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleaner.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java
   jcr/trunk/exo.jcr.component.core/src/main/resources/binding.xml
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCleanableFileStreamValueData.java
   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/value/fs/TestFileIOChannel.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestPersistedValueData.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestTransientValueData.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestValueImpl.java
Log:
EXOJCR-999: FileCleaner reverted to rev.3344

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryInfo.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryInfo.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryInfo.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -48,8 +48,6 @@
 
    protected int lockRemoverMaxThreadCount;
 
-   protected int fileCleanerMaxThreadsCount;
-
    public RepositoryInfo()
    {
 
@@ -203,15 +201,6 @@
    }
 
    /**
-    * Returns FileCleaner per-repository max threads count.
-    * @return LockRemovers per-repository max threads count
-    */
-   public int getFileCleanerThreadsCount()
-   {
-      return fileCleanerMaxThreadsCount;
-   }
-
-   /**
     * Sets LockRemovers per-repository max threads count.
     * @param lockRemoverMaxThreadCount
     */
@@ -221,15 +210,6 @@
    }
 
    /**
-    * Sets FileCleaner per-repository max threads count.
-    * @param fileCleanerMaxThreadsCount
-    */
-   public void setFileCleanerThreadsCount(int fileCleanerMaxThreadsCount)
-   {
-      this.fileCleanerMaxThreadsCount = fileCleanerMaxThreadsCount;
-   }
-
-   /**
     * Merges the current {@link RepositoryInfo} with the given one. The current {@link RepositoryInfo}
     * has the highest priority thus only absent data will be overrode
     * @param entry the entry to merge with the current {@link RepositoryInfo}
@@ -250,7 +230,5 @@
          setSessionTimeOut(entry.sessionTimeOut);
       if (lockRemoverMaxThreadCount == 0)
          setLockRemoverThreadsCount(entry.lockRemoverMaxThreadCount);
-      if (fileCleanerMaxThreadsCount == 0)
-         setFileCleanerThreadsCount(entry.fileCleanerMaxThreadsCount);
    }
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 package org.exoplatform.services.jcr.impl.core.lock;
 
 import org.exoplatform.services.jcr.config.RepositoryEntry;
@@ -5,13 +23,12 @@
 
 /**
  * LockRemoverHolder holds is a single per-repository LockRemover container.
- * @author <a href="mailto:foo at bar.org">Foo Bar</a>
+ * 
+ * @author <a href="mailto:karpenko.sergiy at gmail.com">Karpenko Sergiy</a>
  * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z aheritier $
- *
  */
 public class LockRemoverHolder
 {
-
    /**
     * Default amount of thread that may be used by WorkerService to serve LockRemovers.
     */

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/proccess/WorkerService.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/proccess/WorkerService.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/proccess/WorkerService.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 package org.exoplatform.services.jcr.impl.proccess;
 
 import java.util.concurrent.ScheduledFuture;
@@ -6,6 +24,12 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
+/**
+ * WorkerService.
+ * 
+ * @author <a href="mailto:karpenko.sergiy at gmail.com">Karpenko Sergiy</a>
+ * @version $Id: WorkerService.java 34361 2010-08-24 23:58:59Z aheritier $
+ */
 public class WorkerService
 {
    /**
@@ -95,22 +119,10 @@
    }
 
    /**
-    * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks 
-    * will be accepted. 
+    * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. 
     */
    public void stop()
    {
       executor.shutdown();
    }
-
-   /**
-    * Creates and executes a one-shot action that becomes enabled after the given delay.
-    * 
-    * @param command
-    * @param delay
-    */
-   public void executeDelay(Runnable command, long delay)
-   {
-      executor.schedule(command, delay, TimeUnit.MILLISECONDS);
-   }
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleaner.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleaner.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleaner.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -18,11 +18,16 @@
  */
 package org.exoplatform.services.jcr.impl.util.io;
 
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
+import org.exoplatform.services.jcr.impl.proccess.WorkerThread;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
 import java.io.File;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * Created by The eXo Platform SAS.
@@ -30,43 +35,103 @@
  * @author Gennady Azarenkov
  * @version $Id: FileCleaner.java 11907 2008-03-13 15:36:21Z ksm $
  */
-public class FileCleaner
+public class FileCleaner extends WorkerThread
 {
 
    protected static final long DEFAULT_TIMEOUT = 30000;
 
    protected static Log log = ExoLogger.getLogger("exo.jcr.component.core.FileCleaner");
 
+   protected final ConcurrentLinkedQueue<File> files = new ConcurrentLinkedQueue<File>();
+
+   public FileCleaner()
+   {
+      this(DEFAULT_TIMEOUT);
+   }
+
+   public FileCleaner(long timeout)
+   {
+      this(timeout, true);
+   }
+
+   public FileCleaner(boolean start)
+   {
+      this(DEFAULT_TIMEOUT, start);
+   }
+
+   public FileCleaner(long timeout, boolean start)
+   {
+      super(timeout);
+      setName("FileCleaner " + getId());
+      setDaemon(true);
+      setPriority(Thread.MIN_PRIORITY);
+
+      if (start)
+         start();
+
+      PrivilegedAction<Object> action = new PrivilegedAction<Object>()
+      {
+         public Object run()
+         {
+            registerShutdownHook();
+            return null;
+         }
+      };
+      AccessController.doPrivileged(action);
+
+      if (log.isDebugEnabled())
+      {
+         log.debug("FileCleaner instantiated name= " + getName() + " timeout= " + timeout);
+      }
+   }
+
    /**
-    * FileCleanerTask is a task that might be executed with WorkerService. This task 
-    * tries to remove single file. If remove is failed it register itself to execute again. 
+    * @param file
     */
-   class FileCleanerTask implements Runnable
+   public void addFile(File file)
    {
-      protected final File file;
+      if (PrivilegedFileHelper.exists(file))
+      {
+         files.offer(file);
+      }
+   }
 
-      private final WorkerService executor;
-
-      FileCleanerTask(WorkerService workerService, File file)
+   @Override
+   public void halt()
+   {
+      try
       {
-         this.file = file;
-         this.executor = workerService;
+         callPeriodically();
       }
+      catch (Exception e)
+      {
+      }
 
-      /**
-       * {@inheritDoc} 
-       */
-      public void run()
+      if (files != null && files.size() > 0)
+         log.warn("There are uncleared files: " + files.size());
+
+      super.halt();
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.proccess.WorkerThread#callPeriodically()
+    */
+   @Override
+   protected void callPeriodically() throws Exception
+   {
+      File file = null;
+      Set<File> notRemovedFiles = new HashSet<File>();
+      while ((file = files.poll()) != null)
       {
          if (PrivilegedFileHelper.exists(file))
          {
             if (!PrivilegedFileHelper.delete(file))
             {
+               notRemovedFiles.add(file);
+
                if (log.isDebugEnabled())
                   log.debug("Could not delete " + (file.isDirectory() ? "directory" : "file")
                      + ". Will try next time: " + PrivilegedFileHelper.getAbsolutePath(file));
-               // delete is failed, so execute this task again 
-               executor.executeDelay(this, timeout);
             }
             else if (log.isDebugEnabled())
             {
@@ -75,44 +140,37 @@
             }
          }
       }
-   }
 
-   final long timeout;
-
-   final WorkerService workerService;
-
-   /**
-    * TODO this constructor used only in ext project. Clean it.
-    * 
-    * @param timeout
-    */
-   public FileCleaner(long timeout)
-   {
-      this(new WorkerService(1), DEFAULT_TIMEOUT);
+      //add do lists tail all not removed files
+      if (!notRemovedFiles.isEmpty())
+      {
+         files.addAll(notRemovedFiles);
+      }
    }
 
-   public FileCleaner(WorkerService workerService)
+   private void registerShutdownHook()
    {
-      this(workerService, DEFAULT_TIMEOUT);
-   }
-
-   public FileCleaner(WorkerService workerService, long timeout)
-   {
-      this.timeout = timeout;
-      this.workerService = workerService;
-   }
-
-   /**
-    * Add file to special removing queue.  
-    * 
-    * @param file - file that must be removed
-    */
-   public void addFile(File file)
-   {
-      if (PrivilegedFileHelper.exists(file))
+      // register shutdown hook for final cleaning up
+      try
       {
-         workerService.executeDelay(new FileCleanerTask(workerService, file), timeout);
+         Runtime.getRuntime().addShutdownHook(new Thread()
+         {
+            @Override
+            public void run()
+            {
+               File file = null;
+               while ((file = files.poll()) != null)
+               {
+                  PrivilegedFileHelper.delete(file);
+               }
+            }
+         });
       }
+      catch (IllegalStateException e)
+      {
+         // can't register shutdownhook because
+         // jvm shutdown sequence has already begun,
+         // silently ignore...
+      }
    }
-
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -18,9 +18,6 @@
  */
 package org.exoplatform.services.jcr.impl.util.io;
 
-import org.exoplatform.services.jcr.config.RepositoryEntry;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
-
 /**
  * Created by The eXo Platform SAS. <br/> per workspace container file cleaner holder object
  * 
@@ -29,56 +26,17 @@
  */
 public class FileCleanerHolder
 {
-   /**
-    * Default amount of thread that may be used by WorkerService to serve LockRemovers.
-    */
-   public final int DEFAULT_THREAD_COUNT = 1;
 
-   /**
-    * WorkerService that executed LockRemover.
-    */
-   private final WorkerService workerService;
+   private final FileCleaner fileCleaner;
 
-   /**
-    * Constructor. Used in tests.
-    * 
-    * @param threadCount - how mane threads can serve FileCleaner tasks
-    */
-   public FileCleanerHolder(int threadCount)
+   public FileCleanerHolder()
    {
-      workerService = new WorkerService(threadCount, "file-cleaner-");
+      this.fileCleaner = new FileCleaner();
    }
 
-   /**
-    * Constructor.
-    * @param entry - RepositoryEntry that may contain lock-remover-max-threads parameter.
-    */
-   public FileCleanerHolder(RepositoryEntry entry)
-   {
-      int threadCount = DEFAULT_THREAD_COUNT;
-      if (entry != null)
-      {
-         if (entry.getLockRemoverThreadsCount() > 0)
-         {
-            threadCount = entry.getLockRemoverThreadsCount();
-         }
-      }
-      workerService = new WorkerService(threadCount, "file-cleaner-" + entry.getName());
-   }
-
    public FileCleaner getFileCleaner()
    {
-      return new FileCleaner(workerService);
+      return fileCleaner;
    }
 
-   public FileCleaner getFileCleaner(long timeout)
-   {
-      return new FileCleaner(workerService, timeout);
-   }
-
-   public void stop()
-   {
-      this.workerService.stop();
-   }
-
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/binding.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/binding.xml	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/binding.xml	2010-10-26 15:33:02 UTC (rev 3349)
@@ -19,9 +19,6 @@
 		  deserializer="org.exoplatform.services.jcr.util.ConfigurationFormat.parseTime" usage="optional" />
     <value name="lock-remover-max-threads" field="lockRemoverMaxThreadCount" 
 		  deserializer="org.exoplatform.services.jcr.util.ConfigurationFormat.parseInt" usage="optional" />
-    <value name="file-cleaner-max-threads" field="fileCleanerMaxThreadsCount" 
-		  deserializer="org.exoplatform.services.jcr.util.ConfigurationFormat.parseInt" usage="optional" />
-		  
     <value name="authentication-policy" field="authenticationPolicy" />
     <collection name="workspaces" field="workspaces" item-type="org.exoplatform.services.jcr.config.WorkspaceEntry" />
   </mapping>

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCleanableFileStreamValueData.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCleanableFileStreamValueData.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCleanableFileStreamValueData.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -20,7 +20,6 @@
 
 import org.exoplatform.services.jcr.JcrImplBaseTest;
 import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
 import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 import org.exoplatform.services.jcr.impl.util.io.SwapFile;
 
@@ -50,7 +49,6 @@
 
    private File testFile = new File(parentDir, FILE_NAME);
 
-   private WorkerService workerService;
    private FileCleaner testCleaner;
 
    private CleanableFilePersistedValueData cleanableValueData;
@@ -84,9 +82,9 @@
    public void setUp() throws Exception
    {
       super.setUp();
-      WorkerService workerService = new WorkerService(1);
-      testCleaner = new FileCleaner(workerService, CLEANER_TIMEOUT);
 
+      testCleaner = new FileCleaner(CLEANER_TIMEOUT);
+
       SwapFile sf = SwapFile.get(parentDir, FILE_NAME);
       FileOutputStream fout = new FileOutputStream(sf);
       fout.write("testFileCleaned".getBytes());
@@ -101,9 +99,9 @@
    {
       cleanableValueData = null;
 
+      testCleaner.halt();
       testCleaner = null;
-      workerService.stop();
-      
+
       if (testFile.exists())
       {
          testFile.delete();

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-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/JDBCWDCTest.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -104,7 +104,7 @@
       // ref.add(new StringRefAddr("database", "jdbc:hsqldb:file:data/test"));
 
       // SimpleJNDIContextInitializer.initialize(sourceName, ref);
-      FileCleanerHolder holder = new FileCleanerHolder(1);
+      FileCleanerHolder holder = new FileCleanerHolder();
 
       container =
          new JDBCWorkspaceDataContainer(config, repositoryEntry, null, new StandaloneStoragePluginProvider(config,

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/value/fs/TestFileIOChannel.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/value/fs/TestFileIOChannel.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/value/fs/TestFileIOChannel.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -22,7 +22,6 @@
 
 import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.dataflow.TesterTransientValueData;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
 import org.exoplatform.services.jcr.impl.storage.value.ValueDataResourceHolder;
 import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 
@@ -44,8 +43,6 @@
 
    private File rootDir;
 
-   WorkerService workerService;
-
    private FileCleaner cleaner;
 
    private ValueDataResourceHolder resources = new ValueDataResourceHolder();
@@ -59,9 +56,9 @@
    protected void setUp() throws Exception
    {
       super.setUp();
-      workerService = new WorkerService(1, "TestFileIOChannel-file-cleaner");
-      cleaner = new FileCleaner(workerService, 2000);
 
+      cleaner = new FileCleaner(2000);
+
       rootDir = new File(new File("target"), "vs1");
       rootDir.mkdirs();
 
@@ -78,7 +75,7 @@
    @Override
    protected void tearDown() throws Exception
    {
-      cleaner = null;
+      cleaner.halt();
    }
 
    public void testRead() throws Exception

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestPersistedValueData.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestPersistedValueData.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestPersistedValueData.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -23,7 +23,6 @@
 import org.exoplatform.services.jcr.impl.dataflow.persistent.ByteArrayPersistedValueData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.CleanableFilePersistedValueData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.FilePersistedValueData;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
 import org.exoplatform.services.jcr.impl.storage.value.fs.Probe;
 import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 import org.exoplatform.services.jcr.impl.util.io.SwapFile;
@@ -82,8 +81,7 @@
 
    public void testIfFinalizeRemovesTempFileStreamValueData() throws Exception
    {
-      WorkerService workerService = new WorkerService(1, "TestPersistedValueData-file-cleaner");
-      FileCleaner testFileCleaner = new FileCleaner(workerService, 1000);
+      FileCleaner testFileCleaner = new FileCleaner(1000, true);
       try
       {
          byte[] buf = "0123456789".getBytes();
@@ -109,7 +107,7 @@
       }
       finally
       {
-         testFileCleaner = null;
+         testFileCleaner.halt();
       }
    }
 

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestTransientValueData.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestTransientValueData.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestTransientValueData.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -24,7 +24,6 @@
 import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
 import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
 import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 
@@ -67,8 +66,7 @@
 
    public void testCreateFileStreamTransientValueData() throws Exception
    {
-      WorkerService workerService = new WorkerService(1, "TestTransientValueData-file-cleaner");
-      FileCleaner testFileCleaner = new FileCleaner(workerService);
+      FileCleaner testFileCleaner = new FileCleaner();
       try
       {
          byte[] buf = "0123456789".getBytes();
@@ -106,7 +104,7 @@
       }
       finally
       {
-         testFileCleaner = null;
+         testFileCleaner.halt();
       }
 
    }

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestValueImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestValueImpl.java	2010-10-26 15:08:22 UTC (rev 3348)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/value/TestValueImpl.java	2010-10-26 15:33:02 UTC (rev 3349)
@@ -27,7 +27,6 @@
 import org.exoplatform.services.jcr.impl.core.value.LongValue;
 import org.exoplatform.services.jcr.impl.core.value.StringValue;
 import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
-import org.exoplatform.services.jcr.impl.proccess.WorkerService;
 import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 
 import java.io.File;
@@ -51,8 +50,7 @@
 
    public void testNewBinaryValue() throws Exception
    {
-      WorkerService workerService = new WorkerService(1, "TestValueImpl-file-cleaner");
-      FileCleaner testFileCleaner = new FileCleaner(workerService);
+      FileCleaner testFileCleaner = new FileCleaner();
 
       try
       {
@@ -95,7 +93,7 @@
       }
       finally
       {
-         testFileCleaner = null;
+         testFileCleaner.halt();
       }
    }
 



More information about the exo-jcr-commits mailing list