прмежуточный. в процесе рефакторина лишних джсон. частично в разобранном виде поэтому не сливать!

This commit is contained in:
2025-03-21 23:02:53 +03:00
parent 74146fae4c
commit 10c213feae
14 changed files with 224 additions and 209 deletions

17
.idea/workspace.xml generated
View File

@@ -8,11 +8,19 @@
<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 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/Common/Database/Database.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/Database.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/SaveCurrentConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/SaveCurrentConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/ShowCurrentConfigurationTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/ShowCurrentConfigurationTests.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/ConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/ConfigurationCache.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/ConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/ConfigurationCache.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/DVMConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/DVMConfigurationCache.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Configuration/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Configuration/Configuration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/SapforConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/SapforConfigurationCache.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/TestCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/TestCache.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/VisualCaches.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/VisualCaches.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMConfiguration/DVMConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMConfigurationGroup/DVMConfigurationGroup.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMConfigurationGroup/DVMConfigurationGroup.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/Json/SapforPackage_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfiguration/SapforConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfigurationGroup/SapforConfigurationGroup.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforConfigurationGroup/SapforConfigurationGroup.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" />
@@ -82,6 +90,7 @@
<property name="JavaClassFindUsagesOptions.isDerivedClasses" value="true" /> <property name="JavaClassFindUsagesOptions.isDerivedClasses" value="true" />
<property name="JavaClassFindUsagesOptions.isFieldsUsages" value="true" /> <property name="JavaClassFindUsagesOptions.isFieldsUsages" value="true" />
<property name="JavaClassFindUsagesOptions.isMethodsUsages" value="true" /> <property name="JavaClassFindUsagesOptions.isMethodsUsages" value="true" />
<property name="OverrideImplement.combined" value="false" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />

View File

@@ -11,6 +11,7 @@ import org.apache.commons.io.FileUtils;
import java.io.File; import java.io.File;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Vector; import java.util.Vector;
//самый общий интерфейс базы данных, независимо от реализации. //самый общий интерфейс базы данных, независимо от реализации.
public abstract class Database { public abstract class Database {
@@ -224,6 +225,20 @@ public abstract class Database {
public <O extends DBObject, F extends iDBObject> LinkedHashMap<Integer, F> getMapByFKi(O owner, Class<F> fk_class) { public <O extends DBObject, F extends iDBObject> LinkedHashMap<Integer, F> getMapByFKi(O owner, Class<F> fk_class) {
return getMapByFK(owner, fk_class, java.lang.Integer.class); return getMapByFK(owner, fk_class, java.lang.Integer.class);
} }
public <O extends iDBObject, F extends iDBObject> Vector<Integer> getFKi(
Integer owner_pk, Class<O> owner_class, Class<F> fk_class) {
String fk_name = owner_class.getSimpleName().toLowerCase()+"_id";
Vector<Integer> res = new Vector<>();
try {
for (Object o : tables.get(fk_class).Data.values()) {
F f = (F) o;
if (fk_class.getField(fk_name).get(f).equals(owner_pk)) res.add((Integer) f.getPK());
}
} catch (Exception e) {
Utils_.MainLog.PrintException(e);
}
return res;
}
//- //-
public <O extends DBObject, F extends DBObject> Vector<String> getVectorStringByFK(O owner, Class<F> fk_class) { public <O extends DBObject, F extends DBObject> Vector<String> getVectorStringByFK(O owner, Class<F> fk_class) {
Vector<String> res = new Vector<>(); Vector<String> res = new Vector<>();

View File

@@ -49,7 +49,7 @@ public abstract class SaveCurrentConfiguration<C extends Configuration, S extend
@Override @Override
protected void ServerAction() throws Exception { protected void ServerAction() throws Exception {
//занесение информации об участвующих группах конфигурациях и тестах //занесение информации об участвующих группах конфигурациях и тестах
target.saveGroupsAsJson(groups); target.saveGroups(groups);
target.saveTestsAsJson(tests); target.saveTestsAsJson(tests);
target.saveSettingsAsJson(settings); target.saveSettingsAsJson(settings);
//-- //--

View File

@@ -33,6 +33,7 @@ public abstract class ShowCurrentConfigurationTests<C extends Configuration> ext
} }
@Override @Override
protected void showDone() throws Exception { protected void showDone() throws Exception {
/*
ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(target); ConfigurationCache cache = (ConfigurationCache) VisualCaches.GetCache(target);
Vector<Group> groups = cache.getGroups(); Vector<Group> groups = cache.getGroups();
Vector<Test> tests = cache.getTests(); Vector<Test> tests = cache.getTests();
@@ -49,6 +50,7 @@ public abstract class ShowCurrentConfigurationTests<C extends Configuration> ext
if (!tests.isEmpty()) { if (!tests.isEmpty()) {
Global.testingServer.db.tests.ShowUI(tests.lastElement().id); Global.testingServer.db.tests.ShowUI(tests.lastElement().id);
} }
*/
} }
} }

View File

@@ -3,104 +3,35 @@ import Common.Utils.Utils_;
import _VisualDVM.Global; import _VisualDVM.Global;
import _VisualDVM.TestingSystem.Common.Configuration.Configuration; import _VisualDVM.TestingSystem.Common.Configuration.Configuration;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupJson;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson;
import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson;
import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestJson; import _VisualDVM.TestingSystem.Common.Test.Json.TestJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestsJson; import _VisualDVM.TestingSystem.Common.Test.Json.TestsJson;
import _VisualDVM.TestingSystem.Common.Test.Test; import _VisualDVM.TestingSystem.Common.Test.Test;
import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
public class ConfigurationCache extends VisualCache { public class ConfigurationCache extends VisualCache {
public GroupsJson groupsJson = null; public int configuration_id;
public TestsJson testsJson = null; public Vector<String> groupsSummary = null;
public int groupsOnly = 0; public int groupsOnly = 0;
public SettingsArrayJson settingsJson = null; public SettingsArrayJson settingsJson = null;
public String settingsSummary = null; public String settingsSummary = null;
public Vector<String> groupsSummary = null;
//-- //--
public ConfigurationCache(Configuration configuration) { public ConfigurationCache(Configuration configuration) {
groupsSummary = new Vector<>(); configuration_id = configuration.id;
groupsOnly = configuration.groupsOnly; groupsOnly = configuration.groupsOnly;
if (configuration.packedGroupsJson.isEmpty())
groupsJson = new GroupsJson(); //просто пустой
else
groupsJson = Utils_.gson.fromJson(configuration.packedGroupsJson, GroupsJson.class);
//--
if (configuration.packedTestsJson.isEmpty())
testsJson = new TestsJson(); //просто пустой
else
testsJson = Utils_.gson.fromJson(configuration.packedTestsJson, TestsJson.class);
//- //-
if (configuration.packedSettingsJson.isEmpty()) if (configuration.packedSettingsJson.isEmpty())
settingsJson = new SettingsArrayJson(); //просто пустой settingsJson = new SettingsArrayJson(); //просто пустой
else else
settingsJson = Utils_.gson.fromJson(configuration.packedSettingsJson, SettingsArrayJson.class); settingsJson = Utils_.gson.fromJson(configuration.packedSettingsJson, SettingsArrayJson.class);
//- //-
/*
LinkedHashMap<String, Vector<String>> gmap = new LinkedHashMap<>();
for (GroupJson groupJson : groupsJson.array) {
Vector<String> vector = null;
if (gmap.containsKey(groupJson.language)) {
vector = gmap.get(groupJson.language);
} else {
vector = new Vector<>();
gmap.put(groupJson.language, vector);
}
vector.add(groupJson.description);
}
groupsSummary = new Vector<>();
for (String language : gmap.keySet()) {
groupsSummary.add(language + ": " + String.join(";", gmap.get(language)));
}
*/
Vector<String> settingsDescriptionsVector = new Vector<>(); Vector<String> settingsDescriptionsVector = new Vector<>();
for (SettingsJson settingsJson : settingsJson.array) for (SettingsJson settingsJson : settingsJson.array)
settingsDescriptionsVector.add(settingsJson.description); settingsDescriptionsVector.add(settingsJson.description);
settingsSummary = String.join(";", settingsDescriptionsVector); settingsSummary = String.join(";", settingsDescriptionsVector);
} }
public int getTestsCount() { public int getTestsCount() {
return getTests().size(); return 0;
// testsJson.array.size(); временно, до обновления БД.
}
public Vector<Group> getGroups() {
Vector<Group> groups = new Vector<>();
for (GroupJson groupJson : groupsJson.array) {
if (Global.testingServer.db.groups.containsKey(groupJson.id))
groups.add(Global.testingServer.db.groups.get(groupJson.id));
}
return groups;
}
public Vector<Test> getTests() {
Vector<Test> tests = new Vector<>();
if (groupsOnly==0) {
for (TestJson testJson : testsJson.array) {
if (Global.testingServer.db.tests.containsKey(testJson.id))
tests.add(Global.testingServer.db.tests.get(testJson.id));
}
}else {
for (Group group: getGroups()){
tests.addAll(Global.testingServer.db.getVectorByFK(group,Test.class));
}
}
return tests;
}
public Vector<Test> getGroupTests(Group group) {
Vector<Test> tests = new Vector<>();
if (groupsOnly==0) {
for (TestJson testJson : testsJson.array) {
if (Global.testingServer.db.tests.containsKey(testJson.id)) {
Test test = Global.testingServer.db.tests.get(testJson.id);
if (test.group_id == group.id)
tests.add(test);
}
}
}else {
return Global.testingServer.db.getVectorByFK(group, Test.class);
}
return tests;
} }
} }

View File

@@ -7,7 +7,6 @@ import Common.Utils.Utils_;
import _VisualDVM.ServerObjectsCache.ConfigurationCache; import _VisualDVM.ServerObjectsCache.ConfigurationCache;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupJson; import _VisualDVM.TestingSystem.Common.Group.Json.GroupJson;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson;
import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson;
import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson;
import _VisualDVM.TestingSystem.Common.Settings.Settings; import _VisualDVM.TestingSystem.Common.Settings.Settings;
@@ -33,14 +32,12 @@ public class Configuration extends riDBObject {
@Description("DEFAULT 1") @Description("DEFAULT 1")
public int kernels = 1; //ядра public int kernels = 1; //ядра
//-- //--
@Description("DEFAULT ''") //@Description("DEFAULT ''")
public String packedGroupsJson = ""; // public String packedGroupsJson = "";
@Description("DEFAULT ''") @Description("DEFAULT ''")
public String packedTestsJson = ""; public String packedTestsJson = "";
@Description("DEFAULT ''") @Description("DEFAULT ''")
public String packedSettingsJson = ""; public String packedSettingsJson = "";
@Description("DEFAULT -1")
public int ethalon_id = CommonConstants.Nan; //пакет-эталон ( в двм тестировании не нужен.)
@Description("DEFAULT 0") @Description("DEFAULT 0")
public int groupsOnly = 0; public int groupsOnly = 0;
//если флаг выставлен, то при формировании пакета берутся все тесты из участвущих групп. тесты конфигурации игнорируются. //если флаг выставлен, то при формировании пакета берутся все тесты из участвущих групп. тесты конфигурации игнорируются.
@@ -51,9 +48,6 @@ public class Configuration extends riDBObject {
public String printGroupsOnly() { public String printGroupsOnly() {
return groupsOnly !=0 ? "Да" : "Нет"; return groupsOnly !=0 ? "Да" : "Нет";
} }
public String printEthalon() {
return (ethalon_id == CommonConstants.Nan) ? "" : String.valueOf(ethalon_id);
}
public void SwitchAuto() { public void SwitchAuto() {
autoTesting = (autoTesting == 0) ? 1 : 0; autoTesting = (autoTesting == 0) ? 1 : 0;
} }
@@ -61,7 +55,7 @@ public class Configuration extends riDBObject {
return Utils_.getIcon("/Common/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png"); return Utils_.getIcon("/Common/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png");
} }
//-- //--
public void saveGroupsAsJson(Vector<Group> groups) { public void saveGroups(Vector<Group> groups) {
} }
public void saveTestsAsJson(Vector<Test> tests) { public void saveTestsAsJson(Vector<Test> tests) {
packedTestsJson = Utils_.gson.toJson(new TestsJson(tests)); packedTestsJson = Utils_.gson.toJson(new TestsJson(tests));
@@ -75,13 +69,10 @@ public class Configuration extends riDBObject {
super.SynchronizeFields(src); super.SynchronizeFields(src);
Configuration c = (Configuration) src; Configuration c = (Configuration) src;
//-- //--
ethalon_id = c.ethalon_id;
maxtime = c.maxtime; maxtime = c.maxtime;
autoTesting = c.autoTesting; autoTesting = c.autoTesting;
kernels = c.kernels; kernels = c.kernels;
groupsOnly = c.groupsOnly; groupsOnly = c.groupsOnly;
//-
// packedGroupsJson = c.packedGroupsJson;
packedTestsJson = c.packedTestsJson; packedTestsJson = c.packedTestsJson;
packedSettingsJson = c.packedSettingsJson; packedSettingsJson = c.packedSettingsJson;
} }
@@ -94,33 +85,6 @@ public class Configuration extends riDBObject {
return description; return description;
} }
//работает со стороны сервера. //работает со стороны сервера.
public boolean tryUpdateGroup(Group group) {
ConfigurationCache unpacked = new ConfigurationCache(this);
for (GroupJson groupJson : unpacked.groupsJson.array) {
if (groupJson.id == group.id) {
groupJson.description = group.description;
groupJson.language = String.valueOf(group.language);
// packedGroupsJson = Utils_.gson.toJson(unpacked.groupsJson);
return true;
}
}
return false;
}
public boolean tryDeleteGroup(Group group) {
boolean flag = false;
ConfigurationCache unpacked = new ConfigurationCache(this);
List<GroupJson> actualGroups = new Vector<>();
for (GroupJson groupJson : unpacked.groupsJson.array) {
if (groupJson.id == group.id)
flag = true;
else actualGroups.add(groupJson);
}
if (flag) {
unpacked.groupsJson.array = actualGroups;
// packedGroupsJson = Utils_.gson.toJson(unpacked.groupsJson);
}
return flag;
}
public boolean tryUpdateSettings(Settings settings) { public boolean tryUpdateSettings(Settings settings) {
ConfigurationCache unpacked = new ConfigurationCache(this); ConfigurationCache unpacked = new ConfigurationCache(this);
for (SettingsJson settingsJson : unpacked.settingsJson.array) { for (SettingsJson settingsJson : unpacked.settingsJson.array) {
@@ -147,34 +111,4 @@ public class Configuration extends riDBObject {
} }
return flag; return flag;
} }
public boolean tryDeleteTest(Test test) {
boolean flag = false;
ConfigurationCache unpacked = new ConfigurationCache(this);
List<TestJson> actualTests = new Vector<>();
for (TestJson testJson : unpacked.testsJson.array) {
if (testJson.id == test.id)
flag = true;
else actualTests.add(testJson);
}
if (flag) {
unpacked.testsJson.array = actualTests;
packedTestsJson = Utils_.gson.toJson(unpacked.testsJson);
}
return flag;
}
public boolean tryDeleteTests(LinkedHashMap<Integer, Test> tests) {
boolean flag = false;
ConfigurationCache unpacked = new ConfigurationCache(this);
List<TestJson> actualTests = new Vector<>();
for (TestJson testJson : unpacked.testsJson.array) {
if (tests.containsKey(testJson.id))
flag = true;
else actualTests.add(testJson);
}
if (flag) {
unpacked.testsJson.array = actualTests;
packedTestsJson = Utils_.gson.toJson(unpacked.testsJson);
}
return flag;
}
} }

View File

@@ -154,20 +154,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
} }
@Override @Override
protected void afterEditAction(DBObject object) throws Exception { protected void afterEditAction(DBObject object) throws Exception {
if (object instanceof Group) { if (object instanceof DVMSettings) {
Group group = (Group) object;
//-
for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) {
if (dvmConfiguration.tryUpdateGroup(group)) {
db.Update(dvmConfiguration);
}
}
for (SapforConfiguration sapforConfiguration : db.sapforConfigurations.Data.values()) {
if (sapforConfiguration.tryUpdateGroup(group)) {
db.Update(sapforConfiguration);
}
}
} else if (object instanceof DVMSettings) {
DVMSettings dvmSettings = (DVMSettings) object; DVMSettings dvmSettings = (DVMSettings) object;
//- //-
for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) { for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) {
@@ -182,6 +169,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
db.Update(sapforConfiguration); db.Update(sapforConfiguration);
} }
} }
} else if (object instanceof DVMConfiguration){
DVMConfiguration dvmConfiguration = (DVMConfiguration) object;
db.RefreshDVMConfigurationGroups(dvmConfiguration);
}else if (object instanceof SapforConfiguration){
SapforConfiguration sapforConfiguration = (SapforConfiguration) object;
db.RefreshSapforConfigurationGroups(sapforConfiguration);
} }
} }
@Override @Override
@@ -190,34 +183,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Test test = (Test) object; Test test = (Test) object;
Utils_.forceDeleteWithCheck(test.getServerPath()); Utils_.forceDeleteWithCheck(test.getServerPath());
//-- //--
for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) {
if (dvmConfiguration.tryDeleteTest(test)) {
db.Update(dvmConfiguration);
}
}
for (SapforConfiguration sapforConfiguration : db.sapforConfigurations.Data.values()) {
if (sapforConfiguration.tryDeleteTest(test)) {
db.Update(sapforConfiguration);
}
}
//-
} else if (object instanceof Group) { } else if (object instanceof Group) {
Group group = (Group) object; Group group = (Group) object;
LinkedHashMap<Integer, Test> groupTests = db.getMapByFKi(group, Test.class); LinkedHashMap<Integer, Test> groupTests = db.getMapByFKi(group, Test.class);
//-- //--
for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) {
if (dvmConfiguration.tryDeleteGroup(group)) {
dvmConfiguration.tryDeleteTests(groupTests);
db.Update(dvmConfiguration);
}
}
for (SapforConfiguration sapforConfiguration : db.sapforConfigurations.Data.values()) {
if (sapforConfiguration.tryDeleteGroup(group)) {
sapforConfiguration.tryDeleteTests(groupTests);
db.Update(sapforConfiguration);
}
}
//--
for (Test group_test : groupTests.values()) { for (Test group_test : groupTests.values()) {
Utils_.forceDeleteWithCheck(group_test.getServerPath()); Utils_.forceDeleteWithCheck(group_test.getServerPath());
db.DeleteDependencies(group_test); db.DeleteDependencies(group_test);

View File

@@ -10,8 +10,10 @@ import _VisualDVM.Passes.PassCode;
import _VisualDVM.ServerObjectsCache.VisualCaches; import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable; import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestsJson;
import _VisualDVM.TestingSystem.Common.Test.Test; import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestDBTable; import _VisualDVM.TestingSystem.Common.Test.TestDBTable;
import _VisualDVM.TestingSystem.Common.TestFile.TestFile; import _VisualDVM.TestingSystem.Common.TestFile.TestFile;
@@ -25,10 +27,10 @@ import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackageDBTable; import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettingsDBTable; import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettingsDBTable;
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroupsDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration; import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroupsDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage; import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable; import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable; import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable;
@@ -405,4 +407,107 @@ public class TestsDatabase extends SQLiteDatabase {
Commit(); Commit();
*/ */
} }
public static boolean containsGroup(DVMConfigurationGroup group_, Vector<DVMConfigurationGroup> groups) {
for (DVMConfigurationGroup group : groups) {
if (group.isEqual(group_)) {
return true;
}
}
return false;
}
public static boolean containsGroup(SapforConfigurationGroup group_, Vector<SapforConfigurationGroup> groups) {
for (SapforConfigurationGroup group : groups) {
if (group.isEqual(group_)) {
return true;
}
}
return false;
}
public void RefreshDVMConfigurationGroups(DVMConfiguration dvmConfiguration) throws Exception{
if (dvmConfiguration.configurationGroups != null) {
Vector<DVMConfigurationGroup> old_ = getVectorByFK(dvmConfiguration, DVMConfigurationGroup.class);
Vector<DVMConfigurationGroup> new_ = dvmConfiguration.configurationGroups;
//--
Vector<DVMConfigurationGroup> to_delete = new Vector<>();
Vector<DVMConfigurationGroup> to_add = new Vector<>();
for (DVMConfigurationGroup group: old_){
if (!containsGroup(group, new_))
to_delete.add(group);
}
for (DVMConfigurationGroup group : new_) {
if (!containsGroup(group, old_))
to_add.add(group);
}
for (DVMConfigurationGroup group: to_delete)
Delete(group);
for (DVMConfigurationGroup group: to_add)
Insert(group);
dvmConfiguration.configurationGroups=null;
}
}
//--
public void RefreshSapforConfigurationGroups(SapforConfiguration sapforConfiguration) throws Exception{
if (sapforConfiguration.configurationGroups != null) {
Vector<SapforConfigurationGroup> old_ = getVectorByFK(sapforConfiguration, SapforConfigurationGroup.class);
Vector<SapforConfigurationGroup> new_ = sapforConfiguration.configurationGroups;
//--
Vector<SapforConfigurationGroup> to_delete = new Vector<>();
Vector<SapforConfigurationGroup> to_add = new Vector<>();
for (SapforConfigurationGroup group: old_){
if (!containsGroup(group, new_))
to_delete.add(group);
}
for (SapforConfigurationGroup group : new_) {
if (!containsGroup(group, old_))
to_add.add(group);
}
for (SapforConfigurationGroup group: to_delete)
Delete(group);
for (SapforConfigurationGroup group: to_add)
Insert(group);
}
}
//--
public Vector<Integer> getDVMConfigurationGroupsIds(DVMConfiguration configuration){
Vector<Integer> res = new Vector<>();
for (DVMConfigurationGroup dvmConfigurationGroup: dvmConfigurationGroups.Data.values()){
if (dvmConfigurationGroup.dvmconfiguration_id==configuration.id)
res.add(dvmConfigurationGroup.group_id);
}
return res;
}
public Vector<Integer> getDVMConfigurationSettingsIds(DVMConfiguration configuration) {
Vector<Integer> res=new Vector<>();
//временно
SettingsArrayJson settingsArrayJson = Utils_.gson.fromJson(configuration.packedSettingsJson,SettingsArrayJson.class);
for (SettingsJson settingsJson: settingsArrayJson.array){
res.add(settingsJson.id);
}
return res;
}
public LinkedHashMap<Integer, Vector<Integer>> getDVMConfigurationGroupsTestsIds(DVMConfiguration configuration) {
LinkedHashMap<Integer,Vector<Integer>> res =new LinkedHashMap<>();
for (int group_id: getDVMConfigurationGroupsIds(configuration)) {
if (configuration.groupsOnly == 0) {
Vector<Integer> test_ids = new Vector<>();
//--
//временно.
TestsJson testsJson = Utils_.gson.fromJson(configuration.packedTestsJson, TestsJson.class);
for (TestJson testJson : testsJson.array) {
if (Global.testingServer.db.tests.containsKey(testJson.id)) {
Test test = Global.testingServer.db.tests.get(testJson.id);
if (test.group_id == group_id)
test_ids.add(test.id);
}
}
//--
res.put(group_id, test_ids);
} else {
res.put(group_id, getFKi(group_id, Group.class, Test.class));
}
}
return res;
}
} }

View File

@@ -4,6 +4,7 @@ import Common.Utils.Utils_;
import _VisualDVM.TestingSystem.Common.Configuration.Configuration; import _VisualDVM.TestingSystem.Common.Configuration.Configuration;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson; import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson;
import _VisualDVM.TestingSystem.DVM.DVMConfigurationGroup.DVMConfigurationGroup;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector; import java.util.Vector;
@@ -15,15 +16,19 @@ public class DVMConfiguration extends Configuration {
} }
public DVMConfiguration() { public DVMConfiguration() {
} }
//--
@Description("IGNORE")
public Vector<DVMConfigurationGroup> configurationGroups = null;
//--
@Override @Override
public void SynchronizeFields(DBObject src) { public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src); super.SynchronizeFields(src);
DVMConfiguration c = (DVMConfiguration) src; DVMConfiguration c = (DVMConfiguration) src;
c_maxtime = c.c_maxtime; c_maxtime = c.c_maxtime;
packedGroupsJson = c.packedGroupsJson;
} }
@Override public void saveGroups(Vector<Group> groups) {
public void saveGroupsAsJson(Vector<Group> groups) { configurationGroups = new Vector<>();
packedGroupsJson = Utils_.gson.toJson(new GroupsJson(groups)); for (Group group: groups)
configurationGroups.add(new DVMConfigurationGroup(this, group));
} }
} }

View File

@@ -2,6 +2,8 @@ package _VisualDVM.TestingSystem.DVM.DVMConfigurationGroup;
import Common.CommonConstants; import Common.CommonConstants;
import Common.Database.Objects.DBObject; import Common.Database.Objects.DBObject;
import Common.Database.Objects.iDBObject; import Common.Database.Objects.iDBObject;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
public class DVMConfigurationGroup extends iDBObject { public class DVMConfigurationGroup extends iDBObject {
public int dvmconfiguration_id = CommonConstants.Nan; public int dvmconfiguration_id = CommonConstants.Nan;
public int group_id = CommonConstants.Nan; public int group_id = CommonConstants.Nan;
@@ -12,4 +14,13 @@ public class DVMConfigurationGroup extends iDBObject {
dvmconfiguration_id = src_.dvmconfiguration_id; dvmconfiguration_id = src_.dvmconfiguration_id;
group_id = src_.group_id; group_id = src_.group_id;
} }
public DVMConfigurationGroup() {
}
public DVMConfigurationGroup(DVMConfiguration configuration, Group group) {
dvmconfiguration_id = configuration.id;
group_id = group.id;
}
public boolean isEqual(DVMConfigurationGroup group_in) {
return dvmconfiguration_id == group_in.dvmconfiguration_id && group_id == group_in.group_id;
}
} }

View File

@@ -81,18 +81,24 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
//- //-
tasksCount = 0; tasksCount = 0;
Index index = new Index(); Index index = new Index();
//---
Vector<DVMCompilationTask> compilationTasks = new Vector<DVMCompilationTask>(); Vector<DVMCompilationTask> compilationTasks = new Vector<DVMCompilationTask>();
for (DVMConfiguration configuration : configurations) { for (DVMConfiguration configuration : configurations) {
DVMConfigurationCache cache = (DVMConfigurationCache) VisualCaches.GetCache(configuration); //--
for (Group group : cache.getGroups()) { LinkedHashMap<Integer,Vector<Integer>> groupsTestsIds= Global.testingServer.db.getDVMConfigurationGroupsTestsIds(configuration);
for (Test test : cache.getGroupTests(group)) { Vector<Integer> settingsIds = Global.testingServer.db.getDVMConfigurationSettingsIds(configuration);
for (int group_id : groupsTestsIds.keySet()) {
Group group = Global.testingServer.db.groups.get(group_id);
for (int test_id : groupsTestsIds.get(group_id)) {
Test test = Global.testingServer.db.tests.get(test_id);
//-- //--
DVMCompilationTask compilationTask = null; DVMCompilationTask compilationTask = null;
DVMRunTask runTask = null; DVMRunTask runTask = null;
Vector<DVMRunTask> testRunTasks = new Vector<>(); //для выставления эталона Vector<DVMRunTask> testRunTasks = new Vector<>(); //для выставления эталона
DVMRunTask ethalon = null; //эталон. последовательная задача -s без окружения и матрицы. DVMRunTask ethalon = null; //эталон. последовательная задача -s без окружения и матрицы.
//-- //--
for (DVMSettings dvmSettings : cache.getSettings()) { for (int settings_id : settingsIds) {
DVMSettings dvmSettings=Global.testingServer.db.dvmSettings.get(settings_id);
//--- //---
DVMSettingsCache settingsCache = (DVMSettingsCache) VisualCaches.GetCache(dvmSettings); DVMSettingsCache settingsCache = (DVMSettingsCache) VisualCaches.GetCache(dvmSettings);
Vector<Pair<String, String>> params = settingsCache.getTasksParameters(); Vector<Pair<String, String>> params = settingsCache.getTasksParameters();

View File

@@ -42,10 +42,12 @@ public class SapforPackage_json implements Serializable {
public SapforPackage_json() { public SapforPackage_json() {
} }
public SapforPackage_json(ServerSapfor serverSapfor, Vector<SapforConfiguration> configurations, int kernels_in) { public SapforPackage_json(ServerSapfor serverSapfor, Vector<SapforConfiguration> configurations, int kernels_in) {
/*
sapfor_drv = serverSapfor.call_command; sapfor_drv = serverSapfor.call_command;
kernels = kernels_in; kernels = kernels_in;
for (SapforConfiguration sapforConfiguration : configurations) { for (SapforConfiguration sapforConfiguration : configurations) {
SapforTestingSet_json testingSet = new SapforTestingSet_json(((SapforConfigurationCache) VisualCaches.GetCache(sapforConfiguration)).getTests(), sapforConfiguration); SapforTestingSet_json testingSet =
new SapforTestingSet_json(((SapforConfigurationCache) VisualCaches.GetCache(sapforConfiguration)).getTests(), sapforConfiguration);
testingSet.id = getMaxSetId(); testingSet.id = getMaxSetId();
testingSets.add(testingSet); testingSets.add(testingSet);
// формирование задач // формирование задач
@@ -62,6 +64,7 @@ public class SapforPackage_json implements Serializable {
} }
tasks.addAll(sortedTasks.values()); tasks.addAll(sortedTasks.values());
} }
*/
} }
public int getMaxSetId() { public int getMaxSetId() {
return max_set_id++; return max_set_id++;

View File

@@ -1,30 +1,38 @@
package _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration; package _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration;
import Common.CommonConstants;
import Common.Database.Objects.DBObject; import Common.Database.Objects.DBObject;
import Common.Utils.TextLog; import Common.Utils.TextLog;
import Common.Utils.Utils_;
import _VisualDVM.ProjectData.LanguageName; import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.ServerObjectsCache.SapforConfigurationCache; import _VisualDVM.ServerObjectsCache.SapforConfigurationCache;
import _VisualDVM.ServerObjectsCache.VisualCaches; import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Configuration.Configuration; import _VisualDVM.TestingSystem.Common.Configuration.Configuration;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson;
import _VisualDVM.TestingSystem.Common.Test.Test; import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration; import _VisualDVM.TestingSystem.DVM.DVMConfigurationGroup.DVMConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettings; import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
public class SapforConfiguration extends Configuration { public class SapforConfiguration extends Configuration {
@Override @Description("DEFAULT -1")
public void saveGroupsAsJson(Vector<Group> groups) { public int ethalon_id = CommonConstants.Nan; //пакет-эталон ( в двм тестировании не нужен.)
packedGroupsJson = Utils_.gson.toJson(new GroupsJson(groups)); @Description("IGNORE")
public Vector<SapforConfigurationGroup> configurationGroups = null;
public String printEthalon() {
return (ethalon_id == CommonConstants.Nan) ? "" : String.valueOf(ethalon_id);
}
public void saveGroups(Vector<Group> groups) {
configurationGroups = new Vector<>();
for (Group group: groups)
configurationGroups.add(new SapforConfigurationGroup(this, group));
} }
@Override @Override
public void SynchronizeFields(DBObject src) { public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src); super.SynchronizeFields(src);
SapforConfiguration c = (SapforConfiguration) src; SapforConfiguration c = (SapforConfiguration) src;
packedGroupsJson = c.packedGroupsJson; ethalon_id = c.ethalon_id;
} }
public SapforConfiguration(SapforConfiguration sapforConfiguration) { public SapforConfiguration(SapforConfiguration sapforConfiguration) {
this.SynchronizeFields(sapforConfiguration); this.SynchronizeFields(sapforConfiguration);
@@ -33,11 +41,14 @@ public class SapforConfiguration extends Configuration {
} }
@Override @Override
public boolean validate(TextLog Log) { public boolean validate(TextLog Log) {
/*
SapforConfigurationCache cache = (SapforConfigurationCache) VisualCaches.GetCache(this); SapforConfigurationCache cache = (SapforConfigurationCache) VisualCaches.GetCache(this);
//-- //--
Vector<Group> groups = cache.getGroups(); Vector<Group> groups = cache.getGroups();
Vector<SapforSettings> settingsArray = cache.getSettings(); Vector<SapforSettings> settingsArray = cache.getSettings();
Vector<Test> tests = cache.getTests(); Vector<Test> tests = cache.getTests();
//-- //--
Vector<LanguageName> groupsLanguages = new Vector<>(); Vector<LanguageName> groupsLanguages = new Vector<>();
for (Group group : groups) { for (Group group : groups) {
@@ -67,6 +78,7 @@ public class SapforConfiguration extends Configuration {
} }
} }
//- //-
*/
return Log.isEmpty(); return Log.isEmpty();
} }
} }

View File

@@ -2,9 +2,19 @@ package _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup;
import Common.CommonConstants; import Common.CommonConstants;
import Common.Database.Objects.DBObject; import Common.Database.Objects.DBObject;
import Common.Database.Objects.iDBObject; import Common.Database.Objects.iDBObject;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.DVM.DVMConfigurationGroup.DVMConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
public class SapforConfigurationGroup extends iDBObject { public class SapforConfigurationGroup extends iDBObject {
public int sapforconfiguration_id = CommonConstants.Nan; public int sapforconfiguration_id = CommonConstants.Nan;
public int group_id = CommonConstants.Nan; public int group_id = CommonConstants.Nan;
public SapforConfigurationGroup(SapforConfiguration configuration, Group group) {
sapforconfiguration_id = configuration.id;
group_id = group.id;
}
public SapforConfigurationGroup(){
}
@Override @Override
public void SynchronizeFields(DBObject src) { public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src); super.SynchronizeFields(src);
@@ -12,4 +22,7 @@ public class SapforConfigurationGroup extends iDBObject {
sapforconfiguration_id = src_.sapforconfiguration_id; sapforconfiguration_id = src_.sapforconfiguration_id;
group_id = src_.group_id; group_id = src_.group_id;
} }
public boolean isEqual(SapforConfigurationGroup group_in) {
return sapforconfiguration_id == group_in.sapforconfiguration_id && group_id == group_in.group_id;
}
} }