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

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Mar 18 04:25:20 EDT 2011


Author: tolusha
Date: 2011-03-18 04:25:20 -0400 (Fri, 18 Mar 2011)
New Revision: 4132

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/JCRRestor.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/rdbms/DirectoryRestor.java
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java
Log:
EXOJCR-1081:  * use SpoolFile directly 
* fix issue when DirectoryRestore created directories with same name because of System.currentTimeMillis()

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/JCRRestor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/JCRRestor.java	2011-03-17 15:47:38 UTC (rev 4131)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/JCRRestor.java	2011-03-18 08:25:20 UTC (rev 4132)
@@ -288,7 +288,7 @@
 
          // read stream data
          int iStreamCount = in.readInt();
-         ArrayList<File> listFiles = new ArrayList<File>();
+         ArrayList<SpoolFile> listFiles = new ArrayList<SpoolFile>();
 
          for (int i = 0; i < iStreamCount; i++)
          {
@@ -297,8 +297,7 @@
             long fileSize = in.readLong();
 
             // read content file
-            File contentFile = getAsFile(in, fileSize);
-            listFiles.add(contentFile);
+            listFiles.add(getAsFile(in, fileSize));
          }
 
          RestoreChangesLog restoreChangesLog =
@@ -315,12 +314,12 @@
       return transactionChangesLog;
    }
 
-   private File getAsFile(ObjectInputStream ois, long fileSize) throws IOException
+   private SpoolFile getAsFile(ObjectInputStream ois, long fileSize) throws IOException
    {
       int bufferSize = 1024 * 8;
       byte[] buf = new byte[bufferSize];
 
-      File tempFile = SpoolFile.createTempFile("vdincb" + System.currentTimeMillis(), ".stmp", tempDir);
+      SpoolFile tempFile = SpoolFile.createTempFile("vdincb" + System.currentTimeMillis(), ".stmp", tempDir);
       FileOutputStream fos = PrivilegedFileHelper.fileOutputStream(tempFile);
       long readBytes = fileSize;
 
@@ -359,12 +358,12 @@
 
       private List<FixupStream> listFixupStream;
 
-      private List<File> listFile;
+      private List<SpoolFile> listFile;
 
       private FileCleaner fileCleaner;
 
       public RestoreChangesLog(TransactionChangesLog transactionChangesLog, List<FixupStream> listFixupStreams,
-         List<File> listFiles, FileCleaner fileCleaner)
+         List<SpoolFile> listFiles, FileCleaner fileCleaner)
       {
          this.itemDataChangesLog = transactionChangesLog;
          this.listFixupStream = listFixupStreams;
@@ -390,7 +389,7 @@
 
             // re-init the value
             propertyData.getValues().set(listFixupStream.get(i).getValueDataId(),
-               new StreamPersistedValueData(vd.getOrderNumber(), new SpoolFile(listFile.get(i).getAbsolutePath())));
+               new StreamPersistedValueData(vd.getOrderNumber(), listFile.get(i)));
          }
 
          for (int i = 0; i < listFile.size(); i++)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/rdbms/DirectoryRestor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/rdbms/DirectoryRestor.java	2011-03-17 15:47:38 UTC (rev 4131)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/backup/rdbms/DirectoryRestor.java	2011-03-18 08:25:20 UTC (rev 4132)
@@ -67,6 +67,11 @@
    private static final String PREFIX = "fsrestorer";
 
    /**
+    * Guarantee the unique name.
+    */
+   private static volatile int uniqueIndex = 0;
+
+   /**
     * Constructor DirectoryRestorer.
     * 
     * @param dataDirs
@@ -99,7 +104,7 @@
       {
          try
          {
-            File tmpDir = new File(tempDir, PREFIX + System.currentTimeMillis());
+            File tmpDir = new File(tempDir, PREFIX + (System.currentTimeMillis() + uniqueIndex++));
             DirectoryHelper.copyDirectory(dataDir, tmpDir);
 
             tmpDirs.add(tmpDir);

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java	2011-03-17 15:47:38 UTC (rev 4131)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/PendingChangesLog.java	2011-03-18 08:25:20 UTC (rev 4132)
@@ -117,7 +117,7 @@
    /**
     * The list of Files who are contains in ChangesLog.
     */
-   private List<File> listFile;
+   private List<SpoolFile> listFile;
 
    /**
     * The identification string for PendingChangesLog.
@@ -155,7 +155,7 @@
       listInputStream = new ArrayList<InputStream>();
       listFixupStream = new ArrayList<FixupStream>();
       containerType = analysisItemDataChangesLog();
-      listFile = new ArrayList<File>();
+      listFile = new ArrayList<SpoolFile>();
       identifier = IdGenerator.generate();
       this.fileCleaner = fileCleaner;
       this.tempDir = new File(PrivilegedSystemHelper.getProperty("java.io.tmpdir"));
@@ -182,7 +182,7 @@
       listInputStream = new ArrayList<InputStream>();
       listFixupStream = new ArrayList<FixupStream>();
       listRandomAccessFile = new ArrayList<RandomAccessFile>();
-      listFile = new ArrayList<File>();
+      listFile = new ArrayList<SpoolFile>();
       this.identifier = identifier;
       containerType = type;
       this.fileCleaner = fileCleaner;
@@ -217,7 +217,7 @@
     *          the FileCleaner
     */
    public PendingChangesLog(TransactionChangesLog transactionChangesLog, List<FixupStream> listFixupStreams,
-      List<File> listFiles, FileCleaner fileCleaner)
+      List<SpoolFile> listFiles, FileCleaner fileCleaner)
    {
       this.itemDataChangesLog = transactionChangesLog;
       this.listFixupStream = listFixupStreams;
@@ -285,7 +285,7 @@
     * 
     * @return List return list of Files
     */
-   public List<File> getListFile()
+   public List<SpoolFile> getListFile()
    {
       return listFile;
    }
@@ -468,7 +468,7 @@
    {
       this.getFixupStreams().add(fs);
 
-      File f = SpoolFile.createTempFile("tempFile" + IdGenerator.generate(), ".tmp", tempDir);
+      SpoolFile f = SpoolFile.createTempFile("tempFile" + IdGenerator.generate(), ".tmp", tempDir);
 
       this.getListFile().add(f);
       this.getListRandomAccessFiles().add(PrivilegedFileHelper.randomAccessFile(f, "rw"));
@@ -495,10 +495,8 @@
          ValueData vd = (propertyData.getValues().get(listFixupStream.get(i).getValueDataId()));
 
          // re-init the value
-         propertyData.getValues().set(
-            listFixupStream.get(i).getValueDataId(),
-            new StreamPersistedValueData(vd.getOrderNumber(), new SpoolFile(PrivilegedFileHelper
-               .getAbsolutePath(listFile.get(i)))));
+         propertyData.getValues().set(listFixupStream.get(i).getValueDataId(),
+            new StreamPersistedValueData(vd.getOrderNumber(), listFile.get(i)));
       }
 
       if (listRandomAccessFile != null)

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java	2011-03-17 15:47:38 UTC (rev 4131)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/fs/IncrementalBackupJob.java	2011-03-18 08:25:20 UTC (rev 4132)
@@ -167,9 +167,6 @@
                fis.close();
                fileCleaner.addFile(tempFile);
             }
-
-            // restore changes log worlds
-
          }
          else
          {



More information about the exo-jcr-commits mailing list