[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