промежуточный. оптимизация хранения связанных с пакетом конфигураций и их отображения. перевод на json формат хранящийся в бд как строка

This commit is contained in:
2024-09-17 01:04:41 +03:00
parent 7bd4600a25
commit df9fb2e2a2
7 changed files with 68 additions and 49 deletions

7
.idea/workspace.xml generated
View File

@@ -7,12 +7,13 @@
</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/TestingSystem/Common/Configuration/ConfigurationJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Configuration/ConfigurationsJson.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$/src/TestingSystem/Common/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Configuration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSelectedDVMConfigurations.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -0,0 +1,13 @@
package TestingSystem.Common.Configuration;
import com.google.gson.annotations.Expose;
public class ConfigurationJson {
@Expose
public int id;
@Expose
public String description;
public ConfigurationJson(Configuration configuration){
id=configuration.id;
description= configuration.description;
}
public ConfigurationJson(){}
}

View File

@@ -0,0 +1,17 @@
package TestingSystem.Common.Configuration;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class ConfigurationsJson {
@Expose
public List<ConfigurationJson> array =new Vector<>();
public ConfigurationsJson(){
}
//при создании пакета.
public ConfigurationsJson(Vector<? extends Configuration> configurations){
array =new Vector<>();
for (Configuration configuration:configurations)
array.add(new ConfigurationJson(configuration));
}
}

View File

@@ -2,11 +2,11 @@ package TestingSystem.Common.TestingPackage;
import Common.Constants; import Common.Constants;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Database.riDBObject; import Common.Database.riDBObject;
import Common.Global;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.Configuration.Configuration; import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Configuration.ConfigurationJson;
import TestingSystem.Common.Configuration.ConfigurationsJson;
import TestingSystem.Common.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;
import java.io.File; import java.io.File;
@@ -26,14 +26,14 @@ public abstract class TestingPackage<J> extends riDBObject {
public long ChangeDate = 0; public long ChangeDate = 0;
@Description("DEFAULT 0") @Description("DEFAULT 0")
public int connectionErrosCount = 0; public int connectionErrosCount = 0;
//--todo хранить их как json в текстовом формате. //---данные для отображения.
@Description("DEFAULT ''") @Description("DEFAULT ''")
public String packedConfigurationsIds = ""; public String packedConfigurationsJson = "";
@Description("DEFAULT ''") @Description("IGNORE")
public String packedConfigurationsNames = ""; public ConfigurationsJson configurationsJson = null;
@Description("DEFAULT 0") @Description("IGNORE")
public int configurationsCount = 0; public Vector<String> configurationsDescriptions = null;
//--- //----
public TasksPackageState state = TasksPackageState.Draft; public TasksPackageState state = TasksPackageState.Draft;
//-- //--
@Override @Override
@@ -53,9 +53,7 @@ public abstract class TestingPackage<J> extends riDBObject {
connectionErrosCount = tp.connectionErrosCount; connectionErrosCount = tp.connectionErrosCount;
state = tp.state; state = tp.state;
//-- //--
packedConfigurationsIds = tp.packedConfigurationsIds; packedConfigurationsJson= tp.packedConfigurationsJson;
packedConfigurationsNames = tp.packedConfigurationsNames;
configurationsCount = tp.configurationsCount;
} }
public TestingPackage(TestingPackage p) { public TestingPackage(TestingPackage p) {
SynchronizeFields(p); SynchronizeFields(p);
@@ -88,22 +86,28 @@ public abstract class TestingPackage<J> extends riDBObject {
public void destructor() { public void destructor() {
package_json = null; package_json = null;
} }
public Vector<DVMConfiguration> getConfigurations() {
Vector<DVMConfiguration> res = new Vector<>(); public void saveConfigurationsAsJson(Vector<? extends Configuration> configurations) {
for (int o_id : Utils.unpackIntegers(packedConfigurationsIds, "\n")) packedConfigurationsJson = Utils.gson.toJson(new ConfigurationsJson(configurations));
if (Global.testingServer.db.dvm_configurations.containsKey(o_id)) System.out.println(Utils.Brackets(packedConfigurationsJson));
res.add(Global.testingServer.db.dvm_configurations.get(o_id));
return res;
} }
public void saveConfigurations(Vector<? extends Configuration> new_configurations) { //пакеты нередактируемые поэтому метод сработает только один раз.
Vector<String> res = new Vector<>(); public void unpackConfigurationsAsJson() {
Vector<String> names = new Vector<>(); if (configurationsJson == null) {
for (Configuration configuration : new_configurations) { System.out.println("package get Json");
res.add(String.valueOf(configuration.id)); if (packedConfigurationsJson.isEmpty())
names.add(configuration.description); configurationsJson = new ConfigurationsJson(); //просто пустой
else
configurationsJson = Utils.gson.fromJson(packedConfigurationsJson, ConfigurationsJson.class);
} }
packedConfigurationsIds = String.join("\n", res); }
packedConfigurationsNames = String.join("\n", names); public Vector<String> getConfigurationsDescriptions() {
configurationsCount = new_configurations.size(); if (configurationsDescriptions==null) {
unpackConfigurationsAsJson();
configurationsDescriptions = new Vector<>();
for (ConfigurationJson configurationJson : configurationsJson.array)
configurationsDescriptions.add(configurationJson.description);
}
return configurationsDescriptions;
} }
} }

View File

@@ -4,12 +4,9 @@ import Common.Database.iDBTable;
import Common.Global; import Common.Global;
import Common.UI.DataSetControlForm; import Common.UI.DataSetControlForm;
import Common.UI.UI; import Common.UI.UI;
import TestingSystem.Common.TestingPackage.TestingPackage;
import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.Vector;
import static Common.UI.Tables.TableRenderers.*; import static Common.UI.Tables.TableRenderers.*;
public class DVMPackageDBTable extends iDBTable<DVMPackage> { public class DVMPackageDBTable extends iDBTable<DVMPackage> {
@@ -69,11 +66,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
"Машина", "Машина",
"Пользователь", "Пользователь",
"DVM", "DVM",
//-
"конфигурации", "конфигурации",
// "группы",
// "тестов",
//-
"Задач", "Задач",
"Ядер", "Ядер",
"Прогресс", "Прогресс",
@@ -82,11 +75,6 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
"Статус" "Статус"
}; };
} }
public static Vector<String> getConfigurationsNames(TestingPackage object){
String[] data = object.packedConfigurationsNames.split("\n");
return new Vector<String>(Arrays.asList(data));
}
@Override @Override
public Object getFieldAt(DVMPackage object, int columnIndex) { public Object getFieldAt(DVMPackage object, int columnIndex) {
switch (columnIndex) { switch (columnIndex) {
@@ -99,11 +87,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
case 5: case 5:
return object.version; return object.version;
case 6: case 6:
return getConfigurationsNames(object); return object.getConfigurationsDescriptions();
// case 7:
// return getGroupsNames(object);
// case 8:
// return object.testsCount;
case 7: case 7:
return object.tasksCount; return object.tasksCount;
case 8: case 8:

View File

@@ -176,7 +176,7 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
} }
json.compilationTasks.addAll(tasks); json.compilationTasks.addAll(tasks);
//-- //--
target.saveConfigurations(configurations); target.saveConfigurationsAsJson(configurations);
//-- //--
target.tasksCount += tasks_count; target.tasksCount += tasks_count;
target.state= TasksPackageState.Inactive; target.state= TasksPackageState.Inactive;

View File

@@ -157,7 +157,7 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
@Override @Override
protected void ServerAction() throws Exception { protected void ServerAction() throws Exception {
//занесение информации об участвующих конфигурациях //занесение информации об участвующих конфигурациях
target.saveConfigurations(configurations); target.saveConfigurationsAsJson(configurations);
target.saveTasks(tasks, tasks_count); target.saveTasks(tasks, tasks_count);
super.ServerAction(); super.ServerAction();
} }