промежуточный. оптимизация хранения связанных с пакетом конфигураций и их отображения. перевод на json формат хранящийся в бд как строка
This commit is contained in:
@@ -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(){}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,11 @@ package TestingSystem.Common.TestingPackage;
|
||||
import Common.Constants;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.riDBObject;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import TestingSystem.Common.Configuration.Configuration;
|
||||
import TestingSystem.Common.Configuration.ConfigurationJson;
|
||||
import TestingSystem.Common.Configuration.ConfigurationsJson;
|
||||
import TestingSystem.Common.TasksPackageState;
|
||||
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
|
||||
import java.io.File;
|
||||
@@ -26,14 +26,14 @@ public abstract class TestingPackage<J> extends riDBObject {
|
||||
public long ChangeDate = 0;
|
||||
@Description("DEFAULT 0")
|
||||
public int connectionErrosCount = 0;
|
||||
//--todo хранить их как json в текстовом формате.
|
||||
//---данные для отображения.
|
||||
@Description("DEFAULT ''")
|
||||
public String packedConfigurationsIds = "";
|
||||
@Description("DEFAULT ''")
|
||||
public String packedConfigurationsNames = "";
|
||||
@Description("DEFAULT 0")
|
||||
public int configurationsCount = 0;
|
||||
//---
|
||||
public String packedConfigurationsJson = "";
|
||||
@Description("IGNORE")
|
||||
public ConfigurationsJson configurationsJson = null;
|
||||
@Description("IGNORE")
|
||||
public Vector<String> configurationsDescriptions = null;
|
||||
//----
|
||||
public TasksPackageState state = TasksPackageState.Draft;
|
||||
//--
|
||||
@Override
|
||||
@@ -53,9 +53,7 @@ public abstract class TestingPackage<J> extends riDBObject {
|
||||
connectionErrosCount = tp.connectionErrosCount;
|
||||
state = tp.state;
|
||||
//--
|
||||
packedConfigurationsIds = tp.packedConfigurationsIds;
|
||||
packedConfigurationsNames = tp.packedConfigurationsNames;
|
||||
configurationsCount = tp.configurationsCount;
|
||||
packedConfigurationsJson= tp.packedConfigurationsJson;
|
||||
}
|
||||
public TestingPackage(TestingPackage p) {
|
||||
SynchronizeFields(p);
|
||||
@@ -88,22 +86,28 @@ public abstract class TestingPackage<J> extends riDBObject {
|
||||
public void destructor() {
|
||||
package_json = null;
|
||||
}
|
||||
public Vector<DVMConfiguration> getConfigurations() {
|
||||
Vector<DVMConfiguration> res = new Vector<>();
|
||||
for (int o_id : Utils.unpackIntegers(packedConfigurationsIds, "\n"))
|
||||
if (Global.testingServer.db.dvm_configurations.containsKey(o_id))
|
||||
res.add(Global.testingServer.db.dvm_configurations.get(o_id));
|
||||
return res;
|
||||
|
||||
public void saveConfigurationsAsJson(Vector<? extends Configuration> configurations) {
|
||||
packedConfigurationsJson = Utils.gson.toJson(new ConfigurationsJson(configurations));
|
||||
System.out.println(Utils.Brackets(packedConfigurationsJson));
|
||||
}
|
||||
public void saveConfigurations(Vector<? extends Configuration> new_configurations) {
|
||||
Vector<String> res = new Vector<>();
|
||||
Vector<String> names = new Vector<>();
|
||||
for (Configuration configuration : new_configurations) {
|
||||
res.add(String.valueOf(configuration.id));
|
||||
names.add(configuration.description);
|
||||
//пакеты нередактируемые поэтому метод сработает только один раз.
|
||||
public void unpackConfigurationsAsJson() {
|
||||
if (configurationsJson == null) {
|
||||
System.out.println("package get Json");
|
||||
if (packedConfigurationsJson.isEmpty())
|
||||
configurationsJson = new ConfigurationsJson(); //просто пустой
|
||||
else
|
||||
configurationsJson = Utils.gson.fromJson(packedConfigurationsJson, ConfigurationsJson.class);
|
||||
}
|
||||
packedConfigurationsIds = String.join("\n", res);
|
||||
packedConfigurationsNames = String.join("\n", names);
|
||||
configurationsCount = new_configurations.size();
|
||||
}
|
||||
public Vector<String> getConfigurationsDescriptions() {
|
||||
if (configurationsDescriptions==null) {
|
||||
unpackConfigurationsAsJson();
|
||||
configurationsDescriptions = new Vector<>();
|
||||
for (ConfigurationJson configurationJson : configurationsJson.array)
|
||||
configurationsDescriptions.add(configurationJson.description);
|
||||
}
|
||||
return configurationsDescriptions;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,9 @@ import Common.Database.iDBTable;
|
||||
import Common.Global;
|
||||
import Common.UI.DataSetControlForm;
|
||||
import Common.UI.UI;
|
||||
import TestingSystem.Common.TestingPackage.TestingPackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.Vector;
|
||||
|
||||
import static Common.UI.Tables.TableRenderers.*;
|
||||
public class DVMPackageDBTable extends iDBTable<DVMPackage> {
|
||||
@@ -69,11 +66,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
|
||||
"Машина",
|
||||
"Пользователь",
|
||||
"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
|
||||
public Object getFieldAt(DVMPackage object, int columnIndex) {
|
||||
switch (columnIndex) {
|
||||
@@ -99,11 +87,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
|
||||
case 5:
|
||||
return object.version;
|
||||
case 6:
|
||||
return getConfigurationsNames(object);
|
||||
// case 7:
|
||||
// return getGroupsNames(object);
|
||||
// case 8:
|
||||
// return object.testsCount;
|
||||
return object.getConfigurationsDescriptions();
|
||||
case 7:
|
||||
return object.tasksCount;
|
||||
case 8:
|
||||
|
||||
@@ -176,7 +176,7 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
|
||||
}
|
||||
json.compilationTasks.addAll(tasks);
|
||||
//--
|
||||
target.saveConfigurations(configurations);
|
||||
target.saveConfigurationsAsJson(configurations);
|
||||
//--
|
||||
target.tasksCount += tasks_count;
|
||||
target.state= TasksPackageState.Inactive;
|
||||
|
||||
@@ -157,7 +157,7 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
//занесение информации об участвующих конфигурациях
|
||||
target.saveConfigurations(configurations);
|
||||
target.saveConfigurationsAsJson(configurations);
|
||||
target.saveTasks(tasks, tasks_count);
|
||||
super.ServerAction();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user