рефакторинг запроса версий компонент. сделал одной командой

This commit is contained in:
2025-02-03 20:31:34 +03:00
parent 46f44f48b7
commit aefbd50612
9 changed files with 88 additions and 44 deletions

View File

@@ -20,10 +20,6 @@ public class AppendBugReportField extends ClientPass<ComponentsServer, BugReport
return "/icons/Append.png";
}
@Override
protected boolean needsAnimation() {
return true;
}
@Override
public String getButtonText() {
return "";
}
@@ -55,8 +51,7 @@ public class AppendBugReportField extends ClientPass<ComponentsServer, BugReport
}
@Override
protected void body() throws Exception {
BugReport actual =
(BugReport) getServer().ClientRequest(ServerCode.AppendBugReportTextField, "", new BugReportAdditionJson(target, fieldName, addition));
BugReport actual = (BugReport) getServer().ClientRequest(ServerCode.AppendBugReportTextField, "", new BugReportAdditionJson(target, fieldName, addition));
target.SynchronizeFields(actual);
Global.componentsServer.db.Update(target);
}

View File

@@ -1,37 +1,31 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Global;
import _VisualDVM.Passes.Server.ComponentsRepositoryPass;
import _VisualDVM.Passes.Server.ClientPass;
import _VisualDVM.Repository.Component.Component;
import _VisualDVM.Repository.Component.ComponentType;
import _VisualDVM.Repository.Component.Json.ComponentVersionsInfoJson;
import _VisualDVM.Repository.Server.ComponentsServer;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import java.util.LinkedHashMap;
import java.util.Vector;
public class GetComponentsActualVersions extends ComponentsRepositoryPass {
public class GetComponentsActualVersions extends ClientPass<ComponentsServer,Object> {
@Override
public String getIconPath() {
return "/icons/Components.png";
}
@Override
public String getButtonText() {
return "";
protected ComponentsServer getServer() {
return Global.componentsServer;
}
@Override
protected void ServerAction() throws Exception {
Vector<String> versions = new Vector<>();
for (Component component : Global.components.Data.values())
versions.add(component.getComponentType().toString());
Command(new ServerExchangeUnit_2021(ServerCode.GetComponentsVersions, String.join("\n", versions)));
LinkedHashMap<ComponentType, String> response_actual_versions = (LinkedHashMap<ComponentType, String>) server_response.object;
for (ComponentType componentType : response_actual_versions.keySet()) {
Global.components.get(componentType).unpackActualVersion(response_actual_versions.get(componentType));
}
//-- получить актуальные версии с сервера.
Command(new ServerExchangeUnit_2021(ServerCode.GetComponentsMinimalVersions, String.join("\n", versions)));
LinkedHashMap<ComponentType, String> response_minimal_versions = (LinkedHashMap<ComponentType, String>) server_response.object;
for (ComponentType componentType : response_minimal_versions.keySet()) {
Global.components.get(componentType).unpackMinimalVersion(response_minimal_versions.get(componentType));
protected void body() throws Exception {
Vector<String> types = new Vector<>();
for (ComponentType key: Global.components.Data.keySet())
types.add(key.toString());
Vector<ComponentVersionsInfoJson> versions = (Vector<ComponentVersionsInfoJson>) getServer().ClientRequest(ServerCode.GetComponentsVersionsInfo, "", types);
for (ComponentVersionsInfoJson info: versions){
Global.components.get(info.componentType).unpackActualVersion(info.actual_version);
Global.components.get(info.componentType).unpackMinimalVersion(info.minimal_version);
}
for (Component component : Global.components.Data.values()) {
if (component.CanBeUpdated())

View File

@@ -2,5 +2,13 @@ package _VisualDVM.Passes.Server;
import Common.Passes.Pass;
import _VisualDVM.Repository.RepositoryServer;
public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T> {
@Override
protected boolean needsAnimation() {
return true;
}
@Override
public String getButtonText() {
return "";
}
protected abstract S getServer();
}

View File

@@ -0,0 +1,17 @@
package _VisualDVM.Repository.Component.Json;
import Common.CommonConstants;
import _VisualDVM.Repository.Component.ComponentType;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
public class ComponentVersionsInfoJson implements Serializable {
@Expose
public ComponentType componentType = ComponentType.Undefined;
@Expose
public String minimal_version = "";
@Expose
public String actual_version = "";
public ComponentVersionsInfoJson(ComponentType componentType_in){
componentType=componentType_in;
}
}

View File

@@ -375,7 +375,7 @@ public abstract class RepositoryServer<D extends Database> {
RepositoryPass pass = new RepositoryPass(this) {
@Override
public String getDescription() {
return code_in.toString();
return code_in.getDescription();
}
@Override
protected int getTimeout() {
@@ -396,7 +396,7 @@ public abstract class RepositoryServer<D extends Database> {
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, 120000);
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{

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.ComponentVersionsInfoJson;
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.RepositoryServer;
import _VisualDVM.Repository.Subscribes.Subscriber;
@@ -194,11 +195,11 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
} else
throw new RepositoryRefuseException("Баг репорт с ключом " + oldBugReport_.id + " не существует.");
break;
//--
//--
case AppendBugReportTextField:
AppendBugReportField();
break;
//--
//--
case ReceiveBugReportsDatabase:
Print("Получить базу данных баг репортов");
response = new ServerExchangeUnit_2021(ServerCode.OK);
@@ -339,6 +340,9 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = response_minimal_versions_;
break;
case GetComponentsVersionsInfo:
GetComponentsVersionsInfo();
break;
case GetComponentChangesLog:
Print("Получить журнал изменений компонента " + request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK);
@@ -413,21 +417,36 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
break;
}
}
private void AppendBugReportField() throws Exception{
//---------------
private void GetComponentsVersionsInfo() throws Exception {
Print("Получить информацию о версиях компонент");
Vector<String> types = (Vector<String>) request.object;
Vector<ComponentVersionsInfoJson> res = new Vector<>();
for (String sType : types) {
ComponentType componentType = ComponentType.valueOf(sType);
File actualVersionFile = Paths.get(Utils_.getHomePath(), "Components", sType, "version.txt").toFile();
File minimalVersionFile = Paths.get(Utils_.getHomePath(), "Components", sType, "minimal_version.txt").toFile();
ComponentVersionsInfoJson info = new ComponentVersionsInfoJson(componentType);
info.actual_version = Utils_.removeCharacters(Utils.ReadAllText(actualVersionFile), "\n", "\r");
info.minimal_version = Utils_.removeCharacters(Utils.ReadAllText(minimalVersionFile), "\n", "\r");
res.add(info);
}
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = res;
}
private void AppendBugReportField() throws Exception {
BugReportAdditionJson transport = (BugReportAdditionJson) request.object;
Print("Дополнить поле " + request.arg + " баг репорта " + transport.id);
if (db.bugReports.containsKey(transport.id)){
if (db.bugReports.containsKey(transport.id)) {
BugReport actual = db.bugReports.get(transport.id);
Field field = BugReport.class.getField(transport.fieldName);
field.set(actual,field.get(actual)+"\n"+ transport.textAddition);
field.set(actual, field.get(actual) + "\n" + transport.textAddition);
actual.change_date = new Date().getTime();
db.Update(actual);
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = actual;
}
else
} else
throw new RepositoryRefuseException("Баг репорт с ключом " + transport.id + " не существует.");
}
@Override
protected void startAdditionalThreads() {

View File

@@ -10,7 +10,7 @@ public enum ServerCode {
//-
GetComponentsBackups,
//-
UpdateBugReportField,
UpdateBugReportField,//todo выкинуть после обновления.
UpdateBugReport,
AppendBugReportTextField,
//-
@@ -46,8 +46,9 @@ public enum ServerCode {
ReceiveComponent,
ReceiveBugReport,
SendBugReport,
GetComponentsVersions,
GetComponentsMinimalVersions,
GetComponentsVersions, //todo удалить устарел
GetComponentsMinimalVersions, //todo удалить устарел
GetComponentsVersionsInfo,
GetComponentChangesLog,
//--
CheckURLRegistered,
@@ -89,6 +90,14 @@ public enum ServerCode {
GetSapforForCompilation,
GetMaxSapforVersion,
PerformAutoSapforTesting,
Email_new
;
Email_new;
public String getDescription(){
switch (this){
case GetComponentsVersionsInfo:
return "Получить версии компонент";
default:
return this.toString();
}
}
}