рефакторинг публикации компонентов

This commit is contained in:
2025-02-03 23:04:40 +03:00
parent 458e250b5c
commit 26434b21ab
11 changed files with 192 additions and 85 deletions

View File

@@ -17,6 +17,7 @@ import _VisualDVM.Repository.BugReport.BugReport;
import _VisualDVM.Repository.BugReport.Json.BugReportAdditionJson;
import _VisualDVM.Repository.BugReportsDatabase;
import _VisualDVM.Repository.Component.ComponentType;
import _VisualDVM.Repository.Component.Json.ComponentPublicationInfoJson;
import _VisualDVM.Repository.Component.Json.ComponentVersionsInfoJson;
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.RepositoryServer;
@@ -238,7 +239,10 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
response.object = new Vector<>();
}
break;
case PublishComponent:
case UpdateComponent:
UpdateComponent();
break;
case PublishComponent: //todo устарело.
String[] packed = request.arg.split("\n");
String sComponentType = packed[0];
String componentFileName = packed[1];
@@ -280,7 +284,7 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
//-
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case UpdateComponentMinimalVersion:
case UpdateComponentMinimalVersion: //todo устарело
String[] packed_ = request.arg.split("\n");
String sComponentType_ = packed_[0];
String sComponentMinimalVersion = packed_[1];
@@ -452,4 +456,51 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
protected void startAdditionalThreads() {
backUp.start();
}
//-
private void UpdateComponent() throws Exception {
ComponentPublicationInfoJson info = (ComponentPublicationInfoJson) request.object;
Print("Опубликовать компонент " + info.componentType);
File componentHome = Utils_.getFile(Utils_.getHomePath(),"Components", info.componentType.toString());
File componentFile =new File(componentHome, info.fileName);
File versionFile = new File(componentHome, "version.txt");
File backupsFolder = new File(componentHome, "Backups");
//0 архивация старой версии, если она есть.
if (componentFile.exists()) {
String versionText = "";
if (versionFile.exists())
versionText = Utils.ReadAllText(versionFile);
//---->>
Utils_.CheckDirectory(backupsFolder);
Utils.keepNewFiles(backupsFolder, Global.componentsServerProperties.ComponentsBackUpsCount);
//-->>
File backupFile = new File(backupsFolder, info.componentType + "_" + versionText);
if (backupFile.exists())
Utils_.forceDeleteWithCheck(backupFile);
FileUtils.moveFile(componentFile, backupFile);
}
//1 распаковка компонента
Utils_.bytesToFile((byte[]) info.packedFile, componentFile);
//2 запись версии компонента
FileUtils.writeStringToFile(versionFile, info.versionText);
//3 запись в журнал компонента
File changesLog = new File(componentHome, "changes.txt");
FileWriter writer = new FileWriter(changesLog.getAbsolutePath(), true);
BufferedWriter bufferWriter = new BufferedWriter(writer);
bufferWriter.write(info.changeRecord);
bufferWriter.close();
//-
if (info.needsUpdateMinimalVersion){
Print("Поднять минимальную версию компонента " + info.componentType);
File minimal_versionFile = new File(componentHome, "minimal_version.txt");
FileUtils.writeStringToFile(minimal_versionFile, info.versionText);
//-
//3 запись в журнал компонента
FileWriter writer_ = new FileWriter(changesLog, true);
BufferedWriter bufferWriter_ = new BufferedWriter(writer_);
bufferWriter_.write("Минимальная версия поднята до " + info.versionText + "\n");
bufferWriter_.close();
}
//-
response = new ServerExchangeUnit_2021(ServerCode.OK);
}
}