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

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">
<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$/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/DVMConfigurationCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/DVMConfigurationCache.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/ServerObjectsCache/TestCache.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ServerObjectsCache/TestCache.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/Common/Configuration/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Configuration/Configuration.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/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.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>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -82,6 +90,7 @@
<property name="JavaClassFindUsagesOptions.isDerivedClasses" value="true" />
<property name="JavaClassFindUsagesOptions.isFieldsUsages" value="true" />
<property name="JavaClassFindUsagesOptions.isMethodsUsages" value="true" />
<property name="OverrideImplement.combined" value="false" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" 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.util.LinkedHashMap;
import java.util.Locale;
import java.util.Vector;
//самый общий интерфейс базы данных, независимо от реализации.
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) {
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) {
Vector<String> res = new Vector<>();

View File

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

View File

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

View File

@@ -3,104 +3,35 @@ import Common.Utils.Utils_;
import _VisualDVM.Global;
import _VisualDVM.TestingSystem.Common.Configuration.Configuration;
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.SettingsJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestsJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import java.util.LinkedHashMap;
import java.util.Vector;
public class ConfigurationCache extends VisualCache {
public GroupsJson groupsJson = null;
public TestsJson testsJson = null;
public int configuration_id;
public Vector<String> groupsSummary = null;
public int groupsOnly = 0;
public SettingsArrayJson settingsJson = null;
public String settingsSummary = null;
public Vector<String> groupsSummary = null;
//--
public ConfigurationCache(Configuration configuration) {
groupsSummary = new Vector<>();
configuration_id = configuration.id;
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())
settingsJson = new SettingsArrayJson(); //просто пустой
else
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<>();
for (SettingsJson settingsJson : settingsJson.array)
settingsDescriptionsVector.add(settingsJson.description);
settingsSummary = String.join(";", settingsDescriptionsVector);
}
public int getTestsCount() {
return getTests().size();
// 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;
return 0;
}
}

View File

@@ -7,7 +7,6 @@ import Common.Utils.Utils_;
import _VisualDVM.ServerObjectsCache.ConfigurationCache;
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.SettingsJson;
import _VisualDVM.TestingSystem.Common.Settings.Settings;
@@ -33,14 +32,12 @@ public class Configuration extends riDBObject {
@Description("DEFAULT 1")
public int kernels = 1; //ядра
//--
@Description("DEFAULT ''")
public String packedGroupsJson = "";
//@Description("DEFAULT ''")
// public String packedGroupsJson = "";
@Description("DEFAULT ''")
public String packedTestsJson = "";
@Description("DEFAULT ''")
public String packedSettingsJson = "";
@Description("DEFAULT -1")
public int ethalon_id = CommonConstants.Nan; //пакет-эталон ( в двм тестировании не нужен.)
@Description("DEFAULT 0")
public int groupsOnly = 0;
//если флаг выставлен, то при формировании пакета берутся все тесты из участвущих групп. тесты конфигурации игнорируются.
@@ -51,9 +48,6 @@ public class Configuration extends riDBObject {
public String printGroupsOnly() {
return groupsOnly !=0 ? "Да" : "Нет";
}
public String printEthalon() {
return (ethalon_id == CommonConstants.Nan) ? "" : String.valueOf(ethalon_id);
}
public void SwitchAuto() {
autoTesting = (autoTesting == 0) ? 1 : 0;
}
@@ -61,7 +55,7 @@ public class Configuration extends riDBObject {
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) {
packedTestsJson = Utils_.gson.toJson(new TestsJson(tests));
@@ -75,13 +69,10 @@ public class Configuration extends riDBObject {
super.SynchronizeFields(src);
Configuration c = (Configuration) src;
//--
ethalon_id = c.ethalon_id;
maxtime = c.maxtime;
autoTesting = c.autoTesting;
kernels = c.kernels;
groupsOnly = c.groupsOnly;
//-
// packedGroupsJson = c.packedGroupsJson;
packedTestsJson = c.packedTestsJson;
packedSettingsJson = c.packedSettingsJson;
}
@@ -94,33 +85,6 @@ public class Configuration extends riDBObject {
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) {
ConfigurationCache unpacked = new ConfigurationCache(this);
for (SettingsJson settingsJson : unpacked.settingsJson.array) {
@@ -147,34 +111,4 @@ public class Configuration extends riDBObject {
}
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
protected void afterEditAction(DBObject object) throws Exception {
if (object instanceof Group) {
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) {
if (object instanceof DVMSettings) {
DVMSettings dvmSettings = (DVMSettings) object;
//-
for (DVMConfiguration dvmConfiguration : db.dvmConfigurations.Data.values()) {
@@ -182,6 +169,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
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
@@ -190,34 +183,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Test test = (Test) object;
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) {
Group group = (Group) object;
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()) {
Utils_.forceDeleteWithCheck(group_test.getServerPath());
db.DeleteDependencies(group_test);

View File

@@ -10,8 +10,10 @@ import _VisualDVM.Passes.PassCode;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
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.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.TestDBTable;
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.DVMSettings.DVMSettingsDBTable;
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.SapforConfigurationDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroup;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup.SapforConfigurationGroupsDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable;
@@ -215,7 +217,7 @@ public class TestsDatabase extends SQLiteDatabase {
Insert(test);
//->>
importTestFile(test, file);
TestFile testFile = new TestFile(test,file);
TestFile testFile = new TestFile(test, file);
Insert(testFile);
//--
DetectTestMinMaxDim(sapfor, group, test);
@@ -356,7 +358,7 @@ public class TestsDatabase extends SQLiteDatabase {
dvmSettings.ShowUI();
super.ResetUI();
}
public void saveTestFiles(Test test) throws Exception{
public void saveTestFiles(Test test) throws Exception {
for (TestFile file : test.files) {
file.test_id = test.id;
Insert(file);
@@ -368,7 +370,7 @@ public class TestsDatabase extends SQLiteDatabase {
for (TestFile file : files)
Delete(file);
}
public void Patch() throws Exception{
public void Patch() throws Exception {
/*
Vector<DVMConfigurationGroup> DVMConfigurationGroups=new Vector<>();
//группы dvm конфигураций
@@ -405,4 +407,107 @@ public class TestsDatabase extends SQLiteDatabase {
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.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson;
import _VisualDVM.TestingSystem.DVM.DVMConfigurationGroup.DVMConfigurationGroup;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector;
@@ -15,15 +16,19 @@ public class DVMConfiguration extends Configuration {
}
public DVMConfiguration() {
}
//--
@Description("IGNORE")
public Vector<DVMConfigurationGroup> configurationGroups = null;
//--
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
DVMConfiguration c = (DVMConfiguration) src;
c_maxtime = c.c_maxtime;
packedGroupsJson = c.packedGroupsJson;
}
@Override
public void saveGroupsAsJson(Vector<Group> groups) {
packedGroupsJson = Utils_.gson.toJson(new GroupsJson(groups));
public void saveGroups(Vector<Group> groups) {
configurationGroups = new Vector<>();
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.Database.Objects.DBObject;
import Common.Database.Objects.iDBObject;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
public class DVMConfigurationGroup extends iDBObject {
public int dvmconfiguration_id = CommonConstants.Nan;
public int group_id = CommonConstants.Nan;
@@ -12,4 +14,13 @@ public class DVMConfigurationGroup extends iDBObject {
dvmconfiguration_id = src_.dvmconfiguration_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;
Index index = new Index();
//---
Vector<DVMCompilationTask> compilationTasks = new Vector<DVMCompilationTask>();
for (DVMConfiguration configuration : configurations) {
DVMConfigurationCache cache = (DVMConfigurationCache) VisualCaches.GetCache(configuration);
for (Group group : cache.getGroups()) {
for (Test test : cache.getGroupTests(group)) {
//--
LinkedHashMap<Integer,Vector<Integer>> groupsTestsIds= Global.testingServer.db.getDVMConfigurationGroupsTestsIds(configuration);
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;
DVMRunTask runTask = null;
Vector<DVMRunTask> testRunTasks = new Vector<>(); //для выставления эталона
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);
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(ServerSapfor serverSapfor, Vector<SapforConfiguration> configurations, int kernels_in) {
/*
sapfor_drv = serverSapfor.call_command;
kernels = kernels_in;
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();
testingSets.add(testingSet);
// формирование задач
@@ -62,6 +64,7 @@ public class SapforPackage_json implements Serializable {
}
tasks.addAll(sortedTasks.values());
}
*/
}
public int getMaxSetId() {
return max_set_id++;

View File

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

View File

@@ -2,9 +2,19 @@ package _VisualDVM.TestingSystem.SAPFOR.SapforConfigurationGroup;
import Common.CommonConstants;
import Common.Database.Objects.DBObject;
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 int sapforconfiguration_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
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
@@ -12,4 +22,7 @@ public class SapforConfigurationGroup extends iDBObject {
sapforconfiguration_id = src_.sapforconfiguration_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;
}
}