Browse Source

.

research/11.0
neil 5 years ago
parent
commit
5cdc874789
  1. 65
      designer-base/src/main/java/com/fr/design/update/actions/RecoverForDesigner.java

65
designer-base/src/main/java/com/fr/design/update/actions/RecoverForDesigner.java

@ -3,14 +3,14 @@ package com.fr.design.update.actions;
import com.fr.decision.update.backup.Recover; import com.fr.decision.update.backup.Recover;
import com.fr.decision.update.data.UpdateConstants; import com.fr.decision.update.data.UpdateConstants;
import com.fr.decision.update.exception.UpdateException; import com.fr.decision.update.exception.UpdateException;
import com.fr.design.mainframe.DesignerContext;
import com.fr.general.CommonIOUtils; import com.fr.general.CommonIOUtils;
import com.fr.general.GeneralUtils; import com.fr.general.GeneralUtils;
import com.fr.general.IOUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.CommonUtils; import com.fr.stable.CommonUtils;
import com.fr.stable.ProjectLibrary;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -22,59 +22,82 @@ import java.io.IOException;
*/ */
public class RecoverForDesigner implements Recover { public class RecoverForDesigner implements Recover {
private final String installHome = StableUtils.getInstallHome();
@Override @Override
public boolean recover() { public boolean recover() {
try{ try{
CommonIOUtils.copyFilesInDirByPath(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNERBACKUPPATH), CommonIOUtils.copyFilesInDirByPath(StableUtils.pathJoin(installHome, ProjectConstants.LOGS_NAME,
UpdateConstants.INSTALL_LIB, UpdateConstants.DESIGNERBACKUPPATH),
StableUtils.pathJoin(StableUtils.getInstallHome(), ProjectConstants.LIB_NAME)); StableUtils.pathJoin(StableUtils.getInstallHome(), ProjectConstants.LIB_NAME));
return true; return true;
} catch (IOException e) { } catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage() + "Recover error for designer"); FineLoggerFactory.getLogger().error("Recover error for designer", e);
return false; return false;
} }
} }
@Override @Override
public boolean backup() { public boolean backup() {
String installHome = StableUtils.getInstallHome();
//jar包备份文件的目录为"backup/"+jar包当前版本号 //jar包备份文件的目录为"backup/"+jar包当前版本号
String todayBackupDir = StableUtils.pathJoin(installHome, UpdateConstants.DESIGNER_BACKUP_DIR, (GeneralUtils.readBuildNO())); String todayBackupDir = StableUtils.pathJoin(installHome, UpdateConstants.DESIGNER_BACKUP_DIR, (GeneralUtils.readBuildNO()));
backupFilesFromInstallEnv(todayBackupDir); String envHome = ProjectLibrary.getInstance().getLibHome();
backupFilesFromInstallEnv(envHome, todayBackupDir);
backupFilesFromInstallLib(installHome, todayBackupDir); backupFilesFromInstallLib(installHome, todayBackupDir);
try { try {
File file = new File(StableUtils.pathJoin(installHome, UpdateConstants.DOWNLOADPATH)); String installBackup = StableUtils.pathJoin(installHome, ProjectConstants.LOGS_NAME,
CommonUtils.mkdirs(file); UpdateConstants.INSTALL_LIB);
IOUtils.copyFilesInDirByPath(StableUtils.pathJoin(installHome,ProjectConstants.LIB_NAME), File installLib = new File(installBackup);
StableUtils.pathJoin(installHome, UpdateConstants.DESIGNERBACKUPPATH)); CommonUtils.mkdirs(installLib);
File download = new File(StableUtils.pathJoin(installBackup,UpdateConstants.DOWNLOADPATH));
CommonUtils.mkdirs(download);
CommonIOUtils.copyFilesInDirByPath(StableUtils.pathJoin(installHome,ProjectConstants.LIB_NAME),
StableUtils.pathJoin(installBackup,UpdateConstants.DESIGNERBACKUPPATH));
DesignerContext.getDesignerFrame().prepareForExit();
return true; return true;
}catch (IOException e) { } catch (IOException e) {
UpdateException exception = new UpdateException("Backup Exception for designer" + e.getMessage()); UpdateException exception = new UpdateException("Backup Exception for designer" + e.getMessage());
FineLoggerFactory.getLogger().error(exception.getMessage(),exception); FineLoggerFactory.getLogger().error(exception.getMessage(),exception);
return false; return false;
} }
} }
private void backupFilesFromInstallEnv(String todayBackupDir) { private void backupFilesFromInstallEnv(String envHome, String todayBackupDir) {
try { try {
CommonUtils.mkdirs(new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.BACKUPPATH))); File file = new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.BACKUPPATH));
IOUtils.copyFilesInDirByPath( CommonUtils.mkdirs(file);
StableUtils.pathJoin(WorkContext.getCurrent().getPath(),ProjectConstants.LIB_NAME), file = new File(StableUtils.pathJoin(envHome,ProjectConstants.LIB_NAME));
StableUtils.pathJoin(todayBackupDir,UpdateConstants.BACKUPPATH)); File[] files = file.listFiles();
File dir = new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.BACKUPPATH));
if (files != null) {
for (File file1 : files) {
if (file1.getName().startsWith(UpdateConstants.FINE) && file1.getName().endsWith(UpdateConstants.JAR_FILE_SUFFIX)) {
CommonIOUtils.copy(file1, dir);
}
}
}
} catch (IOException e) { } catch (IOException e) {
UpdateException exception = new UpdateException(e.getMessage()); UpdateException exception = new UpdateException(e.getMessage());
FineLoggerFactory.getLogger().error(exception.getMessage() + "backup for Designer recover in env failed"); FineLoggerFactory.getLogger().error(exception.getMessage() , "backup for Designer recover in env failed");
} }
} }
private void backupFilesFromInstallLib(String installHome, String todayBackupDir) { private void backupFilesFromInstallLib(String installHome, String todayBackupDir) {
try { try {
CommonUtils.mkdirs(new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.DESIGNERBACKUPPATH))); CommonUtils.mkdirs(new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.DESIGNERBACKUPPATH)));
IOUtils.copyFilesInDirByPath( File lib = new File(StableUtils.pathJoin(installHome,ProjectConstants.LIB_NAME));
StableUtils.pathJoin(installHome,ProjectConstants.LIB_NAME), File[] files = lib.listFiles();
StableUtils.pathJoin(todayBackupDir,UpdateConstants.DESIGNERBACKUPPATH)); File dir = new File(StableUtils.pathJoin(todayBackupDir,UpdateConstants.DESIGNERBACKUPPATH));
if (files != null) {
for (File file : files) {
if (file.getName().startsWith(UpdateConstants.FINE) || file.getName().contains(UpdateConstants.ASPECTJRT)) {
CommonIOUtils.copy(file, dir);
}
}
}
} catch (IOException e) { } catch (IOException e) {
UpdateException exception = new UpdateException(e.getMessage()); UpdateException exception = new UpdateException(e.getMessage());
FineLoggerFactory.getLogger().error(exception.getMessage() + "backup for Designer recover in install failed"); FineLoggerFactory.getLogger().error(exception.getMessage() , "backup for Designer recover in install failed");
} }
} }
} }

Loading…
Cancel
Save