Index: pom.xml
===================================================================
--- pom.xml (revision 35646)
+++ pom.xml (working copy)
@@ -3,7 +3,7 @@
org.jvnet.hudson.plugins
plugin
- 1.318
+ 1.379
../pom.xml
backup
Index: src/main/java/org/jvnet/hudson/plugins/backup/utils/RestoreTask.java
===================================================================
--- src/main/java/org/jvnet/hudson/plugins/backup/utils/RestoreTask.java (revision 35646)
+++ src/main/java/org/jvnet/hudson/plugins/backup/utils/RestoreTask.java (working copy)
@@ -26,7 +26,11 @@
import hudson.model.Hudson;
import hudson.util.HudsonIsLoading;
+import org.apache.commons.io.FileUtils;
+import org.jvnet.hudson.plugins.backup.BackupConfig;
+import org.jvnet.hudson.plugins.backup.utils.compress.UnArchiver;
+import javax.servlet.ServletContext;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
@@ -34,14 +38,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import javax.servlet.ServletContext;
-
-import org.apache.commons.io.FileUtils;
-import org.jvnet.hudson.plugins.backup.BackupConfig;
-import org.jvnet.hudson.plugins.backup.utils.compress.UnArchiver;
-import org.kohsuke.stapler.StaplerRequest;
-import org.kohsuke.stapler.StaplerResponse;
-
/**
* This is the restore task, run in background and log to a file
*
@@ -51,13 +47,6 @@
private final static Logger LOGGER = Logger.getLogger(RestoreTask.class
.getName());
- /**
- * This context will be passed to the StaplerRequest mock
- * at the end of the restore. It is used be {@link Hudson} to put
- * the {@link HudsonIsLoading} object.
- */
- private ServletContext servletContext;
-
public RestoreTask(BackupConfig configuration, String hudsonWorkDir, String backupFileName,
String logFilePath, ServletContext servletContext) {
super(configuration, hudsonWorkDir, backupFileName, logFilePath);
@@ -107,28 +96,29 @@
unAchiver.unArchive(archive, tempDirectoryPath);
} catch (Exception e) {
e.printStackTrace(logger.getWriter());
- logger.error("Error uncompressiong archive : " + e.getMessage());
+ logger.error("Error uncompressing archive : " + e.getMessage());
finished = true;
return;
}
- // Not using tools like FileUtils.deleteDirectory
- // because it is failing with non existing symbolic links
- logger.info("Removing old configuration files...");
- delete(directory);
+ //files from temporary directory will be copied to HUDSON_HOME, existing files will be overwritten
+ logger.info("Copying temporary directory to the hudson home...");
+ try {
+ FileUtils.copyDirectory(temporary_directory,directory);
+ } catch (IOException e) {
+ e.printStackTrace(logger.getWriter());
+ logger.error("Error copying backup files : " + e.getMessage());
+ finished = true;
+ return;
+ }
- logger.info("Making temporary directory the hudson home...");
- temporary_directory.renameTo(directory);
-
logger.info("*****************************************");
logger.info("Reloading hudson configuration from disk.");
logger.info("*****************************************");
- StaplerRequest request = FakeObject.getStaplerRequestFake(servletContext);
- StaplerResponse response = FakeObject.getStaplerResponseFake();
try {
- Hudson.getInstance().doReload(request, response);
+ Hudson.getInstance().doReload();
} catch (IOException e) {
logger.error("Error reloading config files from disk.");
logger.error("Call this method manually");
@@ -147,18 +137,4 @@
logger.close();
}
- private void delete(File file) {
- if (file.isDirectory()) {
- File[] files = file.listFiles();
- for (int i = 0; i < files.length; i++) {
- delete(files[i]);
- }
- }
- if (configuration.isVerbose()) {
- logger.debug("Deleting " + file.getAbsolutePath());
- }
- file.delete();
- }
-
-
}