Browse Source

Pull request #2485: REPORT-40472 设计器内还原到历史版本后备份的文件夹没有删除

Merge in DESIGN/design from ~BRYANT/design:release/10.0 to release/10.0

* commit '9e8009e3193b3763eb2a33576fef2825bb72da82':
  REPORT-40472 设计器内还原到历史版本后备份的文件夹没有删除
  REPORT-40472 设计器内还原到历史版本后备份的文件夹没有删除
feature/big-screen
Bryant 4 years ago
parent
commit
9eb99a8597
  1. 50
      designer-base/src/main/java/com/fr/design/update/factory/UpdateFileFactory.java
  2. 2
      designer-base/src/main/java/com/fr/design/update/ui/dialog/RestoreDialog.java
  3. 2
      designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java
  4. 12
      designer-base/src/main/java/com/fr/design/update/utils/UpdateFileUtils.java
  5. 28
      designer-base/src/test/java/com/fr/design/update/factory/UpdateFileFactoryTest.java
  6. 11
      designer-base/src/test/java/com/fr/design/update/utils/UpdateFileUtilsTest.java

50
designer-base/src/main/java/com/fr/design/update/factory/UpdateFileFactory.java

@ -0,0 +1,50 @@
package com.fr.design.update.factory;
import com.fr.decision.update.data.UpdateConstants;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StableUtils;
import java.io.File;;
/**
* @author Bryant
* @version 10.0
* Created by Bryant on 2020-09-29
*/
public class UpdateFileFactory {
private UpdateFileFactory() {
}
public static File[] getBackupVersions() {
File[] versions = null;
try {
File backupDir = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR));
StableUtils.mkdirs(backupDir);
versions = backupDir.listFiles();
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return versions;
}
public static boolean isBackupVersionsValid(String version) {
boolean designerValid = false;
boolean envValid = false;
try {
File designerLib = new File(StableUtils.pathJoin(version, UpdateConstants.DESIGNERBACKUPPATH));
File[] jars = designerLib.listFiles();
if (jars != null && jars.length > 0) {
designerValid = true;
}
File envLib = new File(StableUtils.pathJoin(version, UpdateConstants.BACKUPPATH));
jars = envLib.listFiles();
if (jars != null && jars.length > 0) {
envValid = true;
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return designerValid && envValid;
}
}

2
designer-base/src/main/java/com/fr/design/update/ui/dialog/RestoreDialog.java

@ -86,7 +86,7 @@ public class RestoreDialog extends JDialog {
JPanel jarListPane = new JPanel(); JPanel jarListPane = new JPanel();
jarListPane.setLayout(new BoxLayout(jarListPane, BoxLayout.Y_AXIS)); jarListPane.setLayout(new BoxLayout(jarListPane, BoxLayout.Y_AXIS));
String[] jarBackupFiles = UpdateFileUtils.listFilteredFiles(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR); String[] jarBackupFiles = UpdateFileUtils.listBackupVersions();
ArrayUtils.reverse(jarBackupFiles); ArrayUtils.reverse(jarBackupFiles);
String[] jarFilesList = ((jarBackupFiles.length < NUMOFCELL_LEAST) ? Arrays.copyOf(jarBackupFiles, NUMOFCELL_LEAST) : jarBackupFiles); String[] jarFilesList = ((jarBackupFiles.length < NUMOFCELL_LEAST) ? Arrays.copyOf(jarBackupFiles, NUMOFCELL_LEAST) : jarBackupFiles);

2
designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java

@ -320,7 +320,7 @@ public class UpdateMainDialog extends UIDialog {
} }
}); });
//choose RestoreLabel to show //choose RestoreLabel to show
boolean isNeedRestore = ArrayUtils.isNotEmpty(UpdateFileUtils.listFilteredFiles(StableUtils.getInstallHome(), getBackupDirectory())); boolean isNeedRestore = ArrayUtils.isNotEmpty(UpdateFileUtils.listBackupVersions());
jarRestoreLabel = isNeedRestore ? jarRestorePreviousRevision : noJarPreviousRevision; jarRestoreLabel = isNeedRestore ? jarRestorePreviousRevision : noJarPreviousRevision;
} }

12
designer-base/src/main/java/com/fr/design/update/utils/UpdateFileUtils.java

@ -1,5 +1,6 @@
package com.fr.design.update.utils; package com.fr.design.update.utils;
import com.fr.design.update.factory.UpdateFileFactory;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import java.io.File; import java.io.File;
@ -12,22 +13,17 @@ import java.util.List;
* Created by Bryant on 2020-09-25 * Created by Bryant on 2020-09-25
*/ */
public class UpdateFileUtils { public class UpdateFileUtils {
/** /**
* 列出过滤后的文件 * 列出过滤后的文件
* *
* @param installHome 安装目录
* @param backupdir 备份目录
* @return String数组 * @return String数组
*/ */
public static String[] listFilteredFiles(String installHome, String backupdir) { public static String[] listBackupVersions() {
File backupDir = new File(StableUtils.pathJoin(installHome, backupdir)); File[] versionBackup = UpdateFileFactory.getBackupVersions();
StableUtils.mkdirs(backupDir);
File[] versionBackup = backupDir.listFiles();
List<String> versions = new ArrayList<>(); List<String> versions = new ArrayList<>();
if (versionBackup != null) { if (versionBackup != null) {
for (File file : versionBackup) { for (File file : versionBackup) {
if (file.isDirectory() && file.length() > 0) { if (UpdateFileFactory.isBackupVersionsValid(file.getAbsolutePath())) {
versions.add(file.getName()); versions.add(file.getName());
} else { } else {
StableUtils.deleteFile(file); StableUtils.deleteFile(file);

28
designer-base/src/test/java/com/fr/design/update/factory/UpdateFileFactoryTest.java

@ -0,0 +1,28 @@
package com.fr.design.update.factory;
import com.fr.decision.update.data.UpdateConstants;
import com.fr.stable.StableUtils;
import org.junit.Assert;
import org.junit.Test;
import java.io.File;
public class UpdateFileFactoryTest {
@Test
public void testGetBackupVersions() {
Assert.assertEquals(0, UpdateFileFactory.getBackupVersions().length);
File backupDir = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR));
StableUtils.deleteFile(backupDir);
}
@Test
public void testIsBackupVersionsValid() {
File des = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR, "test", UpdateConstants.BACKUPPATH, "test"));
File env = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR, "test", UpdateConstants.DESIGNERBACKUPPATH, "test"));
StableUtils.mkdirs(des);
StableUtils.mkdirs(env);
Assert.assertTrue(UpdateFileFactory.isBackupVersionsValid(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR, "test")));
StableUtils.deleteFile(new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR)));
}
}

11
designer-base/src/test/java/com/fr/design/update/utils/UpdateFileUtilsTest.java

@ -1,5 +1,6 @@
package com.fr.design.update.utils; package com.fr.design.update.utils;
import com.fr.decision.update.data.UpdateConstants;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -15,8 +16,12 @@ public class UpdateFileUtilsTest {
@Test @Test
public void testListFilteredFiles() { public void testListFilteredFiles() {
String[] result = UpdateFileUtils.listFilteredFiles("home", "backup"); File des = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR, "test", UpdateConstants.BACKUPPATH, "test"));
Assert.assertEquals(0, result.length); File env = new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR, "test", UpdateConstants.DESIGNERBACKUPPATH, "test"));
StableUtils.deleteFile(new File(StableUtils.pathJoin("home"))); StableUtils.mkdirs(des);
StableUtils.mkdirs(env);
String[] result = UpdateFileUtils.listBackupVersions();
Assert.assertEquals(1, result.length);
StableUtils.deleteFile(new File(StableUtils.pathJoin(StableUtils.getInstallHome(), UpdateConstants.DESIGNER_BACKUP_DIR)));
} }
} }

Loading…
Cancel
Save