рефакторинг публикации компонентов
This commit is contained in:
@@ -21,7 +21,6 @@ public abstract class Component extends DBObject implements Loggable {
|
||||
//--
|
||||
public String code = "";
|
||||
public String actual_code = "";
|
||||
public boolean needs_update_minimal_version = false;
|
||||
VFileChooser fileChooser = null; ///для ручной установки.
|
||||
private ComponentState state;
|
||||
public abstract ComponentType getComponentType();
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package _VisualDVM.Repository.Component.Json;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Repository.Component.Component;
|
||||
import _VisualDVM.Repository.Component.ComponentType;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.io.Serializable;
|
||||
public class ComponentPublicationInfoJson implements Serializable {
|
||||
@Expose
|
||||
public ComponentType componentType = ComponentType.Undefined;
|
||||
@Expose
|
||||
public String fileName = "";
|
||||
@Expose
|
||||
public byte[] packedFile = null;
|
||||
@Expose
|
||||
public String versionText = "";
|
||||
@Expose
|
||||
public String changeRecord = "";
|
||||
@Expose
|
||||
public boolean needsUpdateMinimalVersion = false;
|
||||
public ComponentPublicationInfoJson(Component component) throws Exception{
|
||||
componentType = component.getComponentType();
|
||||
fileName = component.getFileName();
|
||||
packedFile = Utils_.fileToBytes(component.getFile());
|
||||
versionText = component.getVersionText();
|
||||
}
|
||||
}
|
||||
@@ -370,37 +370,12 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
public void Ping() {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
}
|
||||
//---команды со стороны клиента.
|
||||
public Object ClientRequest(ServerCode code_in, String arg_in, Serializable object_in, int delay) throws Exception {
|
||||
RepositoryPass pass = new RepositoryPass(this) {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return code_in.getDescription();
|
||||
}
|
||||
@Override
|
||||
protected int getTimeout() {
|
||||
return delay;
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(code_in, arg_in,object_in));
|
||||
target = server_response.object;
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
return Log.isEmpty();
|
||||
}
|
||||
};
|
||||
if (pass.Do())
|
||||
return pass.target;
|
||||
throw new PassException(Utils_.Brackets(new Date().toString()) + " Ошибка взаимодействия с сервером " + code_in);
|
||||
}
|
||||
public Object ClientRequest(ServerCode code_in,String arg_in, Serializable object_in)throws Exception {
|
||||
return ClientRequest(code_in,arg_in,object_in, Global.properties.SocketTimeout);
|
||||
}
|
||||
|
||||
//---
|
||||
/*
|
||||
public <T extends DBObject> T getActual(T object_in, Class<T> object_class)throws Exception{
|
||||
return (T) ClientRequest(ServerCode.GetObjectCopyByPK, "",
|
||||
new Pair<>(object_class, object_in.getPK()));
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,8 @@ public enum ServerCode {
|
||||
ReceiveBugReportsDatabase,
|
||||
ReceiveTestsDatabase,
|
||||
ReceiveTestsTasksDatabase,
|
||||
PublishComponent,
|
||||
PublishComponent, //todo удалить устарел
|
||||
UpdateComponent,
|
||||
UpdateComponentMinimalVersion, //возможно потом, слить воедино с публикацией?
|
||||
ReceiveComponent,
|
||||
ReceiveBugReport,
|
||||
@@ -96,6 +97,10 @@ public enum ServerCode {
|
||||
switch (this){
|
||||
case GetComponentsVersionsInfo:
|
||||
return "Получить версии компонент";
|
||||
case UpdateComponent:
|
||||
return "Опубликовать компонент";
|
||||
case UpdateComponentMinimalVersion:
|
||||
return "Поднять минимальную версию компонента";
|
||||
default:
|
||||
return this.toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user