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

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

6
.idea/workspace.xml generated
View File

@@ -7,10 +7,12 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/Json/BugReportAdditionJson.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Json/ComponentVersionsInfoJson.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetComponentsActualVersions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetComponentsActualVersions.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ClientPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ClientPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
</list> </list>

View File

@@ -6,7 +6,7 @@
"Visualizer_2Path": "C:\\Users\\misha\\Documents", "Visualizer_2Path": "C:\\Users\\misha\\Documents",
"InstructionPath": "C:\\Users\\misha\\Documents", "InstructionPath": "C:\\Users\\misha\\Documents",
"PerformanceAnalyzerPath": "C:\\Users\\misha\\Documents", "PerformanceAnalyzerPath": "C:\\Users\\misha\\Documents",
"AutoUpdateSearch": false, "AutoUpdateSearch": true,
"AutoBugReportsLoad": true, "AutoBugReportsLoad": true,
"AutoTestsLoad": true, "AutoTestsLoad": true,
"ConfirmPassesStart": true, "ConfirmPassesStart": true,

View File

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

View File

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

View File

@@ -2,5 +2,13 @@ package _VisualDVM.Passes.Server;
import Common.Passes.Pass; import Common.Passes.Pass;
import _VisualDVM.Repository.RepositoryServer; import _VisualDVM.Repository.RepositoryServer;
public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T> { 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(); 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) { RepositoryPass pass = new RepositoryPass(this) {
@Override @Override
public String getDescription() { public String getDescription() {
return code_in.toString(); return code_in.getDescription();
} }
@Override @Override
protected int getTimeout() { protected int getTimeout() {
@@ -396,7 +396,7 @@ public abstract class RepositoryServer<D extends Database> {
throw new PassException(Utils_.Brackets(new Date().toString()) + " Ошибка взаимодействия с сервером " + code_in); throw new PassException(Utils_.Brackets(new Date().toString()) + " Ошибка взаимодействия с сервером " + code_in);
} }
public Object ClientRequest(ServerCode code_in,String arg_in, Serializable object_in)throws Exception { 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{ 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.BugReport.Json.BugReportAdditionJson;
import _VisualDVM.Repository.BugReportsDatabase; import _VisualDVM.Repository.BugReportsDatabase;
import _VisualDVM.Repository.Component.ComponentType; import _VisualDVM.Repository.Component.ComponentType;
import _VisualDVM.Repository.Component.Json.ComponentVersionsInfoJson;
import _VisualDVM.Repository.EmailMessage; import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.RepositoryServer; import _VisualDVM.Repository.RepositoryServer;
import _VisualDVM.Repository.Subscribes.Subscriber; import _VisualDVM.Repository.Subscribes.Subscriber;
@@ -194,11 +195,11 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
} else } else
throw new RepositoryRefuseException("Баг репорт с ключом " + oldBugReport_.id + " не существует."); throw new RepositoryRefuseException("Баг репорт с ключом " + oldBugReport_.id + " не существует.");
break; break;
//-- //--
case AppendBugReportTextField: case AppendBugReportTextField:
AppendBugReportField(); AppendBugReportField();
break; break;
//-- //--
case ReceiveBugReportsDatabase: case ReceiveBugReportsDatabase:
Print("Получить базу данных баг репортов"); Print("Получить базу данных баг репортов");
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
@@ -339,6 +340,9 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = response_minimal_versions_; response.object = response_minimal_versions_;
break; break;
case GetComponentsVersionsInfo:
GetComponentsVersionsInfo();
break;
case GetComponentChangesLog: case GetComponentChangesLog:
Print("Получить журнал изменений компонента " + request.arg); Print("Получить журнал изменений компонента " + request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
@@ -413,21 +417,36 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
break; 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; BugReportAdditionJson transport = (BugReportAdditionJson) request.object;
Print("Дополнить поле " + request.arg + " баг репорта " + transport.id); Print("Дополнить поле " + request.arg + " баг репорта " + transport.id);
if (db.bugReports.containsKey(transport.id)){ if (db.bugReports.containsKey(transport.id)) {
BugReport actual = db.bugReports.get(transport.id); BugReport actual = db.bugReports.get(transport.id);
Field field = BugReport.class.getField(transport.fieldName); 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(); actual.change_date = new Date().getTime();
db.Update(actual); db.Update(actual);
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = actual; response.object = actual;
} } else
else
throw new RepositoryRefuseException("Баг репорт с ключом " + transport.id + " не существует."); throw new RepositoryRefuseException("Баг репорт с ключом " + transport.id + " не существует.");
} }
@Override @Override
protected void startAdditionalThreads() { protected void startAdditionalThreads() {

View File

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