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

This commit is contained in:
2023-11-16 16:20:20 +03:00
parent 3f00d0f300
commit 4545cf2d26
80 changed files with 346 additions and 254 deletions

View File

@@ -3,6 +3,7 @@ import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import Repository.RepositoryRefuseException;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.io.File;
import java.util.LinkedHashMap;
@@ -128,7 +129,6 @@ public abstract class Database {
} else
throw new RepositoryRefuseException("Таблица " + Utils.Brackets(table.Name) + " не содержит объект с ключом " + Utils.Brackets(key.toString()));
}
// не работает с автоинкрементом.
public DBObject getObjectCopyByPK(Class table_class, Object pk) throws Exception {
DBTable table = tables.get(table_class);
@@ -283,4 +283,6 @@ public abstract class Database {
for (DataSet dataSet : tables.values())
dataSet.RestoreLastSelections();
}
//---
public abstract PassCode_2021 getSynchronizePassCode(); //если бд есть на сервере.
}

View File

@@ -31,6 +31,7 @@ import GlobalData.Tasks.RunTask.RunTasksDBTable;
import GlobalData.User.UsersDBTable;
import Repository.Component.ComponentType;
import Visual_DVM_2021.PassStats.PassStatsDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.nio.file.Paths;
import java.util.Date;
@@ -103,6 +104,10 @@ public class GlobalDatabase extends SQLiteDatabase {
settings.AddAll();
runConfigurations.Patch();
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return null;
}
public void SaveCredentials() throws Exception {
Credentials credentials = (Credentials) Current.get(Current.Credentials);
if (Current.HasMachine())

View File

@@ -12,6 +12,7 @@ import ProjectData.PredictorStatistic.PredictorStatisticsDBTable;
import ProjectData.Project.ProjectInfoDBTable;
import ProjectData.Project.db_project_info;
import ProjectData.SapforData.Functions.FuncCoordinatesDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
@@ -84,6 +85,10 @@ public class ProjectDatabase extends SQLiteDatabase {
for (DBProjectFile f : inexisting_files)
Delete(f);
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return null;
}
//особый проход. нужен при первичной загрузке проекта.
public db_project_info LoadOnlyProjectInfo() throws Exception {
LoadAll(projectInfo);

View File

@@ -5,6 +5,7 @@ import Repository.BugReport.BugReport;
import Repository.BugReport.BugReportsDBTable;
import Repository.SubscriberWorkspace.SubscriberWorkspaceDBTable;
import Repository.Subscribes.SubsribersDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.nio.file.Paths;
import java.util.Vector;
@@ -25,6 +26,10 @@ public class BugReportsDatabase extends SQLiteDatabase {
public void Init() throws Exception {
DeleteDrafts();
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return PassCode_2021.SynchronizeBugReports;
}
public void DeleteDrafts() throws Exception {
Vector<BugReport> drafts = bugReports.getAllDrafts();
for (BugReport draft : drafts)

View File

@@ -254,6 +254,12 @@ public abstract class RepositoryServer<D extends Database> {
DeleteAction(dbObject);
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case DeleteObjectByPK:
Print("Удалить объект по ключу");
Pair<Class, Object> to_delete = (Pair<Class, Object>) request.object;
DeleteAction(db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case GetObjectCopyByPK:
p = (Pair<Class, Object>) request.object;
Print("Получить копию объекта класса " + p.getKey().toString() + " по ключу " + p.getValue());
@@ -284,7 +290,7 @@ public abstract class RepositoryServer<D extends Database> {
//------------------------
case PublishAIObject:
dbObject = (DBObject) request.object;
Print("Опубликовать объект с автоинкрементным ключом" + dbObject.getPK());
Print("Опубликовать объект с автоинкрементным ключом");
db.Insert(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
PublishAction(dbObject);
response = new ServerExchangeUnit_2021(ServerCode.OK);
@@ -337,4 +343,5 @@ public abstract class RepositoryServer<D extends Database> {
}
public void CopyAction(rDBObject src, rDBObject dst) throws Exception {
}
//--
}

View File

@@ -73,6 +73,7 @@ public enum ServerCode {
Patch,
EmailSapforAssembly,
//-
DeleteObjectByPK,
DeleteAccountObjectByPK,
//-
OLD,

View File

@@ -38,10 +38,10 @@ public class SapforTasksPackageSupervisor {
Vector<String> configurationsIds = new Vector<>(Arrays.asList(sapforTasksPackage.configurationsIds.split("\n")));
Vector<Object> tests_ = (Vector<Object>) planner.ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(Test.class, testsIds));
Vector<Object> configurations_ = (Vector<Object>) planner.ServerCommand(ServerCode.GetObjectsCopiesByPK, "", new Pair<>(SapforConfiguration.class, configurationsIds));
LinkedHashMap<String, Test> tests = new LinkedHashMap<>();
LinkedHashMap<Integer, Test> tests = new LinkedHashMap<>();
LinkedHashMap<String, SapforConfiguration> configurations = new LinkedHashMap<>();
Vector<String> groupsIds = new Vector<>();
LinkedHashMap<String, Group> groups = new LinkedHashMap<>();
Vector<Integer> groupsIds = new Vector<>();
LinkedHashMap<Integer, Group> groups = new LinkedHashMap<>();
//--
System.out.println(sapforTasksPackage.id + " — TestsSynchronize");
for (Object o : tests_) {
@@ -58,7 +58,7 @@ public class SapforTasksPackageSupervisor {
//---
Vector<String> badTests = new Vector<>();
for (String testId : testsIds)
if (!tests.containsKey(testId))
if (!tests.containsKey(Integer.parseInt(testId)))
badTests.add(testId);
//--
Vector<String> badConfigurations = new Vector<>();
@@ -119,7 +119,7 @@ public class SapforTasksPackageSupervisor {
for (Test test : tests.values()) {
File test_root = new File(configurationWorkspace, test.description);
Utils.CheckAndCleanDirectory(test_root);
FileUtils.copyDirectory(new File(Global.TestsDirectory, test.id), test_root);
FileUtils.copyDirectory(new File(Global.TestsDirectory, String.valueOf(test.id)), test_root);
actual_tasks_count++;
}
}

View File

@@ -1,14 +1,14 @@
package TestingSystem.Group;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.rDBObject;
import Common.Database.riDBObject;
import Common.UI.UI;
import ProjectData.LanguageName;
import TestingSystem.Test.TestType;
import com.sun.org.glassfish.gmbal.Description;
import java.util.LinkedHashMap;
public class Group extends rDBObject {
public class Group extends riDBObject {
@Override
public boolean isVisible() {
return GroupInterface.isVisible(this);

View File

@@ -6,8 +6,6 @@ import ProjectData.Files.DBProjectFile;
import ProjectData.LanguageName;
import ProjectData.Project.db_project_info;
import java.io.File;
import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.Vector;
//dynamic cats возможен через рефлексию.
@@ -116,17 +114,7 @@ public class GroupInterface {
"\t" + Utils.MFVar("LINK_COMMAND") + " " + Utils.MFVar("LINK_FLAGS") + " " + String.join(" ", objects) + " -o " + binary,
String.join(" ", bodies));
}
//--
public static void CopyFields(Group src, Group dst) {
dst.description = src.description;
dst.type = src.type;
dst.language = src.language;
}
public static String getSummary(Group group) {
return group.description + " " + group.language.getDescription();
}
//для тестирования Сапфора на локальной машине.
public static File getLocalWorkspaceD(Group group){
return Paths.get(Global.visualiser.getWorkspace().getAbsolutePath(), group.id).toFile();
}
}

View File

@@ -19,7 +19,7 @@ public class TestCompilationTask extends TestTask {
Vector<String> res = new Vector<>();
res.add(String.valueOf(id)); //1
res.add(String.valueOf(maxtime)); //2
res.add(test_id); //3
res.add(String.valueOf(test_id)); //3
res.add(makefile_text.replace("\n", "|")); //4
//игнор аргумента. ядро всегда одно.
return res;

View File

@@ -7,12 +7,10 @@ import javafx.util.Pair;
import java.util.List;
public class TestRunTaskInterface {
public static String filterName = "";
public static boolean isVisible(TestRunTask object) {
return
Current.HasTasksPackage() &&
object.taskspackage_id.equals(Current.getTasksPackage().id) &&
object.test_id.contains(filterName) &&
Global.testingServer.account_db.testRunTasks.applyFilters(object);
}
public static String getEnvironments(TestRunTask object) {

View File

@@ -16,12 +16,12 @@ public class TestTask extends DBObject {
public long id = Constants.Nan;
@Description("DEFAULT ''")
public String taskspackage_id = "";
@Description("DEFAULT ''")
public String group_id = "";
@Description("DEFAULT -1")
public int group_id = Constants.Nan;
@Description("DEFAULT ''")
public String group_description = ""; //видимое имя группы для юзера
@Description("DEFAULT ''")
public String test_id = ""; //ключ - будет генерироваться автоматически.
@Description("DEFAULT -1")
public int test_id = Constants.Nan; //ключ - будет генерироваться автоматически.
@Description("DEFAULT ''")
public String test_description = ""; //видимое имя теста для юзера
@Description("DEFAULT ''")

View File

@@ -16,6 +16,7 @@ import TestingSystem.TasksPackage.TasksPackage;
import TestingSystem.TasksPackage.TasksPackageDBTable;
import TestingSystem.TasksPackage.TasksPackageState;
import TestingSystem.TasksPackageToKill.TasksPackageToKillDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import javafx.util.Pair;
import java.io.File;
@@ -64,6 +65,10 @@ public class TasksDatabase extends SQLiteDatabase {
Insert(new TSetting(SettingName.Queue, 0));
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return PassCode_2021.SynchronizeTestsTasks;
}
@Override
public void prepareTablesStatements() throws Exception {
super.prepareTablesStatements();
selectPackageRunTasks = conn.prepareStatement("SELECT * FROM TestRunTask WHERE taskspackage_id = ?");

View File

@@ -36,7 +36,7 @@ public class TasksPackage extends nDBObject {
public TasksPackageState state = TasksPackageState.Queued;
//--
//нужно только для публикации задач.
public LinkedHashMap<String, LinkedHashMap<String, Vector<TestCompilationTask>>> sorted_tasks = new LinkedHashMap<>();
public LinkedHashMap<Integer, LinkedHashMap<Integer, Vector<TestCompilationTask>>> sorted_tasks = new LinkedHashMap<>();
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
@@ -62,10 +62,10 @@ public class TasksPackage extends nDBObject {
kernels = tasksPackage.kernels;
state = tasksPackage.state;
//-
for (String group_id : tasksPackage.sorted_tasks.keySet()) {
LinkedHashMap<String, Vector<TestCompilationTask>> src_groupTasks = tasksPackage.sorted_tasks.get(group_id);
LinkedHashMap<String, Vector<TestCompilationTask>> dst_groupTasks = new LinkedHashMap<>();
for (String test_id : src_groupTasks.keySet()) {
for (int group_id : tasksPackage.sorted_tasks.keySet()) {
LinkedHashMap<Integer, Vector<TestCompilationTask>> src_groupTasks = tasksPackage.sorted_tasks.get(group_id);
LinkedHashMap<Integer, Vector<TestCompilationTask>> dst_groupTasks = new LinkedHashMap<>();
for (int test_id : src_groupTasks.keySet()) {
Vector<TestCompilationTask> src_testTasks = src_groupTasks.get(test_id);
Vector<TestCompilationTask> dst_testTasks = new Vector<>();
for (TestCompilationTask src_testCompilationTask : src_testTasks)

View File

@@ -1,10 +1,11 @@
package TestingSystem.Test;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.rDBObject;
import Common.Database.riDBObject;
import Common.UI.UI;
import com.sun.org.glassfish.gmbal.Description;
public class Test extends rDBObject {
public class Test extends riDBObject {
@Override
public boolean isVisible() {
return TestInterface.isVisible(this);
@@ -13,14 +14,10 @@ public class Test extends rDBObject {
public int dim = 1; //размерность теста. для удобства пусть будет и внешним полем.
@Description("DEFAULT ''")
public String args = ""; //аргументы командной строки. на всякий случай поле зарезервирую. пусть будут.
@Description("DEFAULT ''")
public String group_id = "";
@Description("DEFAULT ''")
public String project_description = "";
@Description("DEFAULT -1")
public int group_id = Constants.Nan;
@Description("IGNORE")
public byte[] project_archive_bytes = null;
@Description("DEFAULT ''")
public String files_json = "";
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);

View File

@@ -35,8 +35,6 @@ public class TestDBTable extends DBTable<String, Test> {
switch (columnIndex) {
case 2:
return object.description;
// case 3:
// return object.project_description;
case 3:
return object.dim;
default:
@@ -74,15 +72,12 @@ public class TestDBTable extends DBTable<String, Test> {
public void fillFields() {
fields.tfName.setText(Result.description);
fields.sDim.setValue(Result.dim);
// fields.tfProjectDescription.setText(Result.project_description);
}
@Override
public void ProcessResult() {
Result.description = fields.tfName.getText();
Result.dim = (int) fields.sDim.getValue();
// Result.project_description = fields.tfProjectDescription.getText();
if (!edit) {
Result.genName();
Result.sender_name = Current.getAccount().name;
Result.sender_address = Current.getAccount().email;
}

View File

@@ -4,35 +4,18 @@ import Common.Global;
import java.io.File;
import java.nio.file.Paths;
import java.util.Date;
public class TestInterface {
public static String filterName = "";
public static String filterSenderName = "";
public static boolean filterMyOnly = false;
public static boolean isVisible(Test object) {
return Current.HasGroup() && (Current.getGroup().id.equals(object.group_id))
&&
object.id.toUpperCase().contains(filterName.toUpperCase()) &&
object.sender_name.toUpperCase().contains(filterSenderName.toUpperCase()) &&
(!filterMyOnly || object.sender_address.equalsIgnoreCase(Current.getAccount().email));
}
//-
public static Date getDate(Test object) {
return new Date(object.date);
}
public static void CopyFields(Test src, Test dst) {
dst.dim = src.dim;
dst.description = src.description;
dst.args = src.args;
return Current.HasGroup() && (Current.getGroup().id == object.group_id);
}
public static File getArchive(Test object) {
return Paths.get(System.getProperty("user.dir"), "Tests", object.id + ".zip").toFile();
}
public static File getServerPath(Test object) {
return Paths.get(System.getProperty("user.dir"), "Tests", object.id).toFile();
return Paths.get(System.getProperty("user.dir"), "Tests", String.valueOf(object.id)).toFile();
}
public static File getHomePath(Test object) {
return Paths.get(Global.visualiser.getWorkspace().getAbsolutePath(), object.id).toFile();
return Paths.get(Global.visualiser.getWorkspace().getAbsolutePath(), String.valueOf(object.id)).toFile();
}
public static String getSummary(Test test) {
return test.description;

View File

@@ -15,7 +15,7 @@ import TestingSystem.TasksPackage.TasksPackageState;
import TestingSystem.TestsSupervisor_2022.TestsSupervisor_2022;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair;
import java.io.File;

View File

@@ -78,11 +78,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
//объект уже вставлен.
TasksPackage tasksPackage = (TasksPackage) object;
//-
for (String group_id : tasksPackage.sorted_tasks.keySet()) {
for (int group_id : tasksPackage.sorted_tasks.keySet()) {
if (db.groups.containsKey(group_id)) {
Group group = db.groups.get(group_id);
LinkedHashMap<String, Vector<TestCompilationTask>> group_tasks = tasksPackage.sorted_tasks.get((group_id));
for (String test_id : group_tasks.keySet()) {
LinkedHashMap<Integer, Vector<TestCompilationTask>> group_tasks = tasksPackage.sorted_tasks.get((group_id));
for (int test_id : group_tasks.keySet()) {
if (db.tests.containsKey(test_id)) {
Test test = db.tests.get(test_id);
db_project_info project = new db_project_info(test);//Открытие бд проекта и ее синхронизация. неизбежно.
@@ -140,7 +140,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Group group = (Group) object;
Vector<Test> tests = new Vector<>();
for (Test group_test : db.tests.Data.values()) {
if (group_test.group_id.equals(group.id)) // todo group_name -> group_id
if (group_test.group_id==group.id) // todo group_name -> group_id
tests.add(group_test);
}
for (Test group_test : tests) {
@@ -476,7 +476,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
response.object = Utils.packFile(account_db.getFile());
break;
case DeleteAccountObjectByPK:
Print("Удалить объект из базы пользователя " + request.arg);
Print("Удалить объект по ключу из базы пользователя " + request.arg);
SetCurrentAccountDB(request.arg);
Pair<Class, Object> to_delete = (Pair<Class, Object>) request.object;
DeleteAction(account_db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));

View File

@@ -10,6 +10,7 @@ import TestingSystem.Group.GroupsDBTable;
import TestingSystem.TSetting.TSetting;
import TestingSystem.TSetting.TSettingsDBTable;
import TestingSystem.Test.TestDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.nio.file.Paths;
public class TestsDatabase extends SQLiteDatabase {
@@ -43,6 +44,10 @@ public class TestsDatabase extends SQLiteDatabase {
if (!settings.containsKey(SettingName.SapforTaskMaxId))
Insert(new TSetting(SettingName.SapforTaskMaxId, 0));
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return PassCode_2021.SynchronizeTests;
}
public long IncMaxTaskId() throws Exception {
TSetting setting = settings.get(SettingName.TaskMaxId);
long res = setting.value;

View File

@@ -99,7 +99,7 @@ public class TestsSupervisor_2022 {
Vector<String> test_ids = new Vector<>();
for (TestCompilationTask current_task : compilationTasks)
if (!test_ids.contains(current_task.test_id))
test_ids.add(current_task.test_id);
test_ids.add(String.valueOf(current_task.test_id));
//синхронизировать их.
for (String test_id : test_ids) {
File test_src = Paths.get(Global.TestsDirectory.getAbsolutePath(), test_id).toFile();

View File

@@ -4,7 +4,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.TasksPackageToKill.TasksPackageToKill;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Vector;
public class AbortSapforTaskPackage extends TestingSystemPass<SapforTasksPackage> {

View File

@@ -4,7 +4,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TasksPackage.TasksPackage;
import TestingSystem.TasksPackageToKill.TasksPackageToKill;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Vector;
public class AbortSelectedPackages extends TestingSystemPass<Vector<TasksPackage>> {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.Subscribes.Subscriber;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
public class AddSubscriber extends ComponentsRepositoryPass<Subscriber> {
@Override

View File

@@ -7,7 +7,7 @@ import Repository.BugReport.BugReportInterface;
import Repository.EmailMessage;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import javafx.util.Pair;

View File

@@ -3,7 +3,7 @@ import Common.Current;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.Subscribes.Subscriber;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class CheckRegistrationOnServer extends ComponentsRepositoryPass<Subscriber> {
@Override
protected void ServerAction() throws Exception {

View File

@@ -3,7 +3,7 @@ import Common.Current;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.SubscriberWorkspace.SubscriberWorkspace;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class CheckRemoteWorkspace extends ComponentsRepositoryPass<SubscriberWorkspace> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -8,16 +8,14 @@ import ProjectData.Project.db_project_info;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Group.Group;
import TestingSystem.Test.ProjectFiles_json;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.file.Paths;
import java.util.Date;
import java.util.Vector;
public class ConvertCorrectnessTests extends TestingSystemPass<File> {
@Override
@@ -59,7 +57,7 @@ public class ConvertCorrectnessTests extends TestingSystemPass<File> {
for (Group group : groups) {
ShowMessage1("Создание группы " + group.description);
tests = new Vector<>();
group.genName();
// group.genName();
group.sender_name = Current.getAccount().name;
group.sender_address = Current.getAccount().email;
//->>
@@ -67,30 +65,23 @@ public class ConvertCorrectnessTests extends TestingSystemPass<File> {
for (String testFileName : group.testsFiles.keySet()) {
ShowMessage2("Создание теста " + testFileName);
test = new Test();
test.genName();
// test.genName();
test.description = Utils.getNameWithoutExtension(testFileName) + "_" + group.language.getDVMCompile();
test.date = new Date().getTime();
test.sender_name = Current.getAccount().name;
test.sender_address = Current.getAccount().email;
test.group_id = group.id;
//->>
File testProject = Paths.get(Global.TempDirectory.getAbsolutePath(), test.id).toFile();
File testProject = Paths.get(Global.TempDirectory.getAbsolutePath(), String.valueOf(test.id)).toFile();
Utils.forceDeleteWithCheck(testProject);
FileUtils.forceMkdir(testProject);
File testFile = Paths.get(testProject.getAbsolutePath(), testFileName).toFile();
Utils.unpackFile(group.testsFiles.get(testFileName), testFile);
//----
ProjectFiles_json projectFiles_json = new ProjectFiles_json();
//----
DBProjectFile testDBProjectFile = new DBProjectFile();
testDBProjectFile.name = testFile.getName();
testDBProjectFile.file = testFile;
testDBProjectFile.AutoDetectProperties();
//---
projectFiles_json.files.add(testDBProjectFile);
//---
test.files_json = Utils.jsonToPrettyFormat(Utils.gson.toJson(projectFiles_json));
//->
//без создания бд!!
db_project_info vizTestProject = new db_project_info(testProject, "", false);
switch (group.language) {

View File

@@ -74,7 +74,7 @@ public class CreateTestsGroupFromSelectedVersions extends Pass_2021<Vector<db_pr
return "Добавление группы";
}
@Override
protected boolean fillObjectFields() throws Exception {
public boolean fillObjectFields() throws Exception {
//тут имя надо генерить, потому что может совпасть.
target.description = Utils.getDateName(Current.getRoot().name);
target.type = TestType.Default;

View File

@@ -9,7 +9,7 @@ import ProjectData.Files.DBProjectFile;
import ProjectData.Project.db_project_info;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import org.apache.commons.io.FileUtils;

View File

@@ -3,7 +3,7 @@ import Repository.BugReport.BugReport;
import Repository.BugReport.BugReportState;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class DeleteBugReportFromServer extends ComponentsRepositoryPass<BugReport> {
@Override
protected boolean canStart(Object... args) {

View File

@@ -5,7 +5,7 @@ import Common.Utils.Utils;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class DeleteSapforTasksPackage extends TestingSystemPass<SapforTasksPackage> {
@Override
public String getIconPath() {

View File

@@ -6,7 +6,7 @@ import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.ServerSapfor.ServerSapfor;
import Visual_DVM_2021.Passes.DeleteObjectPass;
import Visual_DVM_2021.Passes.Pass_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class DeleteServerSapfor extends DeleteObjectPass<ServerSapfor> {
public DeleteServerSapfor() {
super(ServerSapfor.class);

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.Subscribes.Subscriber;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
public class DeleteSubscriberOnServer extends ComponentsRepositoryPass<Subscriber> {
@Override

View File

@@ -4,7 +4,7 @@ import Common.Global;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import org.apache.commons.io.FileUtils;

View File

@@ -5,7 +5,7 @@ import Repository.BugReport.BugReport;
import Repository.BugReport.BugReportInterface;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class DownloadBugReport extends ComponentsRepositoryPass<BugReport> {
@Override
protected boolean canStart(Object... args) {

View File

@@ -4,7 +4,7 @@ import Common.Utils.Utils;
import Repository.Component.Component;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class DownloadComponent extends ComponentsRepositoryPass<Component> {
@Override
protected void ServerAction() throws Exception {

View File

@@ -6,7 +6,7 @@ import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.io.File;
public class DownloadSapforTasksPackage extends TestingSystemPass<SapforTasksPackage> {

View File

@@ -8,7 +8,7 @@ import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Test.Test;
import TestingSystem.Test.TestInterface;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class DownloadTest extends TestingSystemPass<Test> {
@Override
public String getIconPath() {
@@ -35,7 +35,7 @@ public class DownloadTest extends TestingSystemPass<Test> {
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DownloadTest, target.id));
Command(new ServerExchangeUnit_2021(ServerCode.DownloadTest, String.valueOf(target.id)));
response.Unpack(TestInterface.getArchive(target));
}
@Override

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Configuration.Configuration;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditConfigurationOnServer extends TestingSystemPass<Configuration> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -1,15 +1,20 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Database.Database;
import Common.Global;
import TestingSystem.Group.Group;
import Visual_DVM_2021.Passes.EditObjectPass;
import Visual_DVM_2021.Passes.PassCode_2021;
public class EditGroup extends EditObjectPass<Group> {
public EditGroup() {
super(Group.class);
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditGroup extends TestingSystemPass<Group> {
@Override
public String getIconPath() {
return "/icons/RedAdd.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected void ServerAction() throws Exception {
}
/*
@Override
protected boolean canStart(Object... args) throws Exception {
if (Current.Check(Log, Current.Group)){
target = Current.getGroup();
@@ -30,4 +35,8 @@ public class EditGroup extends EditObjectPass<Group> {
//отправка.
passes.get(PassCode_2021.EditGroupOnServer).Do(target);
}
@Override
protected void ServerAction() throws Exception {
}
*/
}

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Group.Group;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditGroupOnServer extends TestingSystemPass<Group> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforConfigurationCommand.SapforConfigurationCommand;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditSapforConfigurationCommandOnServer extends TestingSystemPass<SapforConfigurationCommand> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditSapforConfigurationOnServer extends TestingSystemPass<SapforConfiguration> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.Subscribes.Subscriber;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
public class EditSubscriberOnServer extends ComponentsRepositoryPass<Subscriber> {
@Override

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class EditTestOnServer extends TestingSystemPass<Test> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.EmailMessage;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
//http://java-online.ru/javax-mail.xhtml
//https://javarush.ru/groups/posts/1226-kak-otpravitjh-pisjhmo-iz-java-prilozhenija-s-primerom
public class Email extends ComponentsRepositoryPass<EmailMessage> {

View File

@@ -4,7 +4,7 @@ import Repository.Component.Component;
import Repository.Component.ComponentType;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import java.util.LinkedHashMap;
import java.util.Vector;

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Common.Current;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import java.io.File;
import java.util.Vector;

View File

@@ -3,7 +3,7 @@ import Common.Current;
import Common.UI.UI;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class GetTestsQueueSize extends TestingSystemPass<Long> {
@Override
public String getIconPath() {

View File

@@ -10,7 +10,7 @@ import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.ServerSapfor.ServerSapfor;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.SSH.ConnectionPass;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Date;
import java.util.Vector;

View File

@@ -5,7 +5,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TSetting.TSetting;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PauseTesting extends TestingSystemPass<TSetting> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -5,7 +5,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TSetting.TSetting;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PlayTesting extends TestingSystemPass<TSetting> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -11,7 +11,7 @@ import Repository.EmailMessage;
import Repository.RepositoryServer;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;

View File

@@ -4,7 +4,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Configuration.Configuration;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PublishConfiguration extends TestingSystemPass<Configuration> {
@Override
public String getIconPath() {

View File

@@ -1,45 +1,10 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Common.Global;
import TestingSystem.Group.Group;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
public class PublishGroup extends TestingSystemPass<Group> {
@Override
public String getIconPath() {
return "/icons/RedAdd.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (Current.getAccount().CheckRegistered(Log)) {
target = new Group();
target.genName();
target.sender_name = Current.getAccount().name;
target.sender_address = Current.getAccount().email;
return fillObjectFields();
}
return false;
}
protected boolean fillObjectFields() throws Exception {
return server.db.groups.ShowAddObjectDialog(target);
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, "", target));
}
@Override
protected void performFinish() throws Exception {
super.performFinish();
passes.get(PassCode_2021.SynchronizeTests).Do();
}
@Override
protected void showDone() throws Exception {
super.showDone();
server.db.groups.ui_.Show(target.getPK());
import TestingSystem.TestingServer;
import Visual_DVM_2021.Passes.Server.PublishServerObject;
public class PublishGroup extends PublishServerObject<TestingServer, Group> {
public PublishGroup() {
super(Global.testingServer, Group.class);
}
}

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Repository.SubscriberWorkspace.SubscriberWorkspace;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class PublishRemoteWorkspace extends ComponentsRepositoryPass<SubscriberWorkspace> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -4,7 +4,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PublishSapforConfiguration extends TestingSystemPass<SapforConfiguration> {
@Override
public String getIconPath() {

View File

@@ -4,7 +4,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforConfigurationCommand.SapforConfigurationCommand;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class PublishSapforConfigurationCommand extends TestingSystemPass<SapforConfigurationCommand> {
@Override
public String getIconPath() {

View File

@@ -4,17 +4,13 @@ import Common.Current;
import Common.UI.UI;
import Common.Utils.Utils;
import ProjectData.Project.db_project_info;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Test.ProjectFiles_json;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.nio.file.Paths;
import java.util.Date;
public class PublishTest extends TestingSystemPass<Test> {
@Override
public String getIconPath() {
@@ -25,19 +21,9 @@ public class PublishTest extends TestingSystemPass<Test> {
return "";
}
protected db_project_info project = null;
protected ProjectFiles_json files_json = null;
protected boolean checkCurrentGroupAutorship() {
if (!Current.getGroup().sender_address.equals(Current.getAccount().email)) {
Log.Writeln_("Текущая группа " + Utils.Brackets(Current.getGroup().description)
+ " принадлежит пользователю " + Utils.Brackets(Current.getGroup().sender_address)
+ "\nВы не являетесь её автором!"
);
return false;
} else return true;
}
protected boolean setProject() {
if (Current.Check(Log, Current.Group, Current.Project) &&
checkCurrentGroupAutorship() && checkSubdirectories()
checkSubdirectories()
&& UI.Question("Добавить текущий проект в глобальную базу тестов")) {
project = Current.getProject();
switch (project.languageName) {
@@ -59,31 +45,18 @@ public class PublishTest extends TestingSystemPass<Test> {
}
return true;
}
protected boolean packPrograms() {
files_json = project.filesToJson();
if (files_json.files.isEmpty()) {
Log.Writeln_("В проекте не найдено ни одной активной программы!");
return false;
}
return true;
}
@Override
protected boolean canStart(Object... args) throws Exception {
project = null;
files_json = null;
if (Current.getAccount().CheckRegistered(Log) && setProject() && packPrograms()) {
if (Current.getAccount().CheckRegistered(Log) && setProject()) {
target = new Test();
target.genName();
target.description = project.getLocalName() + " " + project.description;
// target.project_description=project.description;
target.dim = project.testMaxDim;
target.date = new Date().getTime();
target.sender_name = Current.getAccount().name;
target.sender_address = Current.getAccount().email;
target.group_id = Current.getGroup().id;
target.files_json = Utils.jsonToPrettyFormat(Utils.gson.toJson(files_json));
if (fillObjectFields()) {
File src = Paths.get(System.getProperty("user.dir"), "Temp", target.id).toFile();
File src = Paths.get(System.getProperty("user.dir"), "Temp", String.valueOf(target.id)).toFile();
Utils.forceDeleteWithCheck(src);
FileUtils.forceMkdir(src);
if (project.db.files.Data.isEmpty()) {
@@ -108,7 +81,7 @@ public class PublishTest extends TestingSystemPass<Test> {
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, "", target));
PublishObject(target);
}
@Override
protected void performFinish() throws Exception {

View File

@@ -2,7 +2,7 @@ package Visual_DVM_2021.Passes.All;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class RefreshDVMTests extends TestingSystemPass<Object>{
@Override
public String getIconPath() {

View File

@@ -9,6 +9,7 @@ import GlobalData.RemoteFile.RemoteFile;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.*;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;

View File

@@ -5,7 +5,7 @@ import Repository.BugReport.BugReportInterface;
import Repository.BugReport.BugReportState;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
public class SendBugReport extends ComponentsRepositoryPass {
@Override
protected void ServerAction() throws Exception {

View File

@@ -5,7 +5,7 @@ import Common.Utils.Utils;
import Repository.Component.Component;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import org.apache.commons.io.FileUtils;
import java.io.File;

View File

@@ -14,7 +14,7 @@ import TestingSystem.Group.Group;
import TestingSystem.TasksPackage.TasksPackageState;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.io.File;
import java.util.Date;
@@ -23,7 +23,7 @@ import java.util.Vector;
public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
protected int allTasksCount = 0;
//--
protected LinkedHashMap<String, Vector<String>> groupsTests = null;
protected LinkedHashMap<Integer, Vector<Integer>> groupsTests = null;
//--
protected LinkedHashMap<String, Test> allTests = null;
protected Vector<String> testsNames_lower = null; //все тесты что участвуют здесь
@@ -53,12 +53,12 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
testsNames_lower.add(name);
return true;
}
protected boolean getGroupTests(String groupId) {
Vector<String> groupTests = new Vector<>();
Vector<String> selectedGroupTests = new Vector<>();
protected boolean getGroupTests(int groupId) {
Vector<Integer> groupTests = new Vector<>();
Vector<Integer> selectedGroupTests = new Vector<>();
//---
for (Test test : Global.testingServer.db.tests.Data.values()) {
if (test.group_id.equals(groupId)) {
if (test.group_id==groupId) {
groupTests.add(test.id);
if (test.isSelected())
selectedGroupTests.add(test.id);
@@ -72,7 +72,7 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
return false;
}
//--
for (String testId : groupTests) {
for (int testId : groupTests) {
Test test = Global.testingServer.db.tests.get(testId);
if (!checkTestName(test))
return false;
@@ -189,7 +189,7 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
}
//--
for (int i = 0; i < Global.testingServer.db.sapforConfigurations.getCheckedCount(); ++i) {
for (Vector<String> tests : groupsTests.values())
for (Vector<Integer> tests : groupsTests.values())
allTasksCount += tests.size();
}
//--
@@ -206,7 +206,7 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
Vector<String> testsIds = new Vector<>();
Vector<String> configurationsIds = new Vector<>();
for (Test test : allTests.values())
testsIds.add(test.id);
testsIds.add(String.valueOf(test.id));
//--
for (SapforConfiguration configuration : Global.testingServer.db.sapforConfigurations.getCheckedItems())
configurationsIds.add(configuration.id);

View File

@@ -15,7 +15,7 @@ import TestingSystem.Tasks.TestRunTask;
import TestingSystem.TasksPackage.TasksPackage;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Date;
import java.util.LinkedHashMap;
@@ -153,7 +153,7 @@ public class StartTests extends TestingSystemPass<TasksPackage> {
Vector<Test> groupTests = new Vector<>();
Vector<Test> checkedGroupTests = new Vector<>();
for (Test test : server.db.tests.Data.values()) {
if (test.group_id.equals(group.id)) {
if (test.group_id==group.id) {
groupTests.add(test);
if (test.isSelected())
checkedGroupTests.add(test);
@@ -177,7 +177,7 @@ public class StartTests extends TestingSystemPass<TasksPackage> {
for (TestCompilationTask task : tasks) {
target.compilationTasksCount++;
target.runTasksCount += task.runTasks.size();
LinkedHashMap<String, Vector<TestCompilationTask>> group_tasks = null;
LinkedHashMap<Integer, Vector<TestCompilationTask>> group_tasks = null;
if (target.sorted_tasks.containsKey(task.group_id))
group_tasks = target.sorted_tasks.get(task.group_id);
else {

View File

@@ -4,7 +4,7 @@ import GlobalData.Settings.SettingName;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TSetting.TSetting;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
public class SwitchTestingEmail extends TestingSystemPass<TSetting> {
@Override
protected boolean canStart(Object... args) throws Exception {

View File

@@ -5,7 +5,7 @@ import Common.UI.UI;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import org.apache.commons.io.FileUtils;
import java.io.File;

View File

@@ -4,7 +4,7 @@ import Common.UI.UI;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import org.apache.commons.io.FileUtils;
import java.io.File;

View File

@@ -7,7 +7,7 @@ import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TestingServer;
import Visual_DVM_2021.Passes.Pass_2021;
import Visual_DVM_2021.Passes.TestingSystemPass;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import org.apache.commons.io.FileUtils;
import java.io.File;

View File

@@ -9,7 +9,7 @@ import Repository.BugReport.BugReportState;
import Repository.EmailMessage;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.Server.ComponentsRepositoryPass;
import Visual_DVM_2021.Passes.PassCode_2021;
import javafx.util.Pair;

View File

@@ -5,6 +5,7 @@ import Common.Database.rDBObject;
import Common.UI.UI;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.util.Vector;
public class DeleteSelectedServerObjects extends TestingSystemPass<Vector<rDBObject>> {

View File

@@ -1,4 +1,4 @@
package Visual_DVM_2021.Passes;
package Visual_DVM_2021.Passes.Server;
import Common.Global;
import Repository.Server.ComponentsServer;
public abstract class ComponentsRepositoryPass<T> extends RepositoryPass<ComponentsServer, T> {

View File

@@ -0,0 +1,29 @@
package Visual_DVM_2021.Passes.Server;
import Common.Current;
import Common.Database.riDBObject;
import Repository.RepositoryServer;
public class PublishServerObject<S extends RepositoryServer, D extends riDBObject> extends ServerObjectPass<S, D> {
public PublishServerObject(S server_in, Class<D> d_in) {
super(server_in, d_in);
}
@Override
public String getIconPath() {
return "/icons/RedAdd.png";
}
//--
@Override
protected boolean canStart(Object... args) throws Exception {
if (Current.getAccount().CheckRegistered(Log)) {
target = d.newInstance();
target.sender_name = Current.getAccount().name;
target.sender_address = Current.getAccount().email;
return fillObjectFields();
}
return false;
}
//--
@Override
protected void ServerAction() throws Exception {
PublishObject(target);
}
}

View File

@@ -1,17 +1,22 @@
package Visual_DVM_2021.Passes;
package Visual_DVM_2021.Passes.Server;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.iDBObject;
import Common.Global;
import Common.Utils.Utils;
import Repository.RepositoryRefuseException;
import Repository.RepositoryServer;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Pass_2021;
import javafx.util.Pair;
import java.io.File;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.*;
public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass_2021<T> {
protected S server;
public RepositoryPass(S server_in) {
@@ -53,7 +58,7 @@ public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass
clientSocket = null;
in = null;
out = null;
// System.out.println("done");
// System.out.println("done");
}
protected abstract void ServerAction() throws Exception;
protected void Command(ServerExchangeUnit_2021 request_in) throws Exception {
@@ -97,7 +102,7 @@ public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass
Log.Writeln_("Текущий сервер устарел. Доступны только обновления компонент!");
return;
}
if (ex instanceof RepositoryRefuseException){
if (ex instanceof RepositoryRefuseException) {
Log.Writeln_(ex.getMessage());
return;
}
@@ -115,4 +120,26 @@ public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass
} else
super.CheckException(ex);
}
///--- ОБЪЕКТЫ ГЛАВНОЙ БАЗЫ ----------------
public void PublishObject(DBObject object) throws Exception {
Command(new ServerExchangeUnit_2021(
((object instanceof iDBObject) ? ServerCode.PublishAIObject : ServerCode.PublishObject),
"",
object
));
}
public void EditObject(DBObject object) throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.EditObject, "", object));
}
//-
public void DeleteObject(DBObject object) throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DeleteObjectByPK, "",
new Pair<>(object.getClass(), object.getPK())));
}
//-------------------------------------------
//--- ОБЪЕКТЫ БАЗЫ ПОЛЬЗОВАТЕЛЯ
public void DeleteAccountObject(DBObject object) throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DeleteAccountObjectByPK, Current.getAccount().email,
new Pair<>(object.getClass(), object.getPK())));
}
}

View File

@@ -0,0 +1,35 @@
package Visual_DVM_2021.Passes.Server;
import Common.Database.DBObject;
import Common.Database.Database;
import Repository.RepositoryServer;
public abstract class ServerObjectPass <S extends RepositoryServer, D extends DBObject> extends RepositoryPass<S,D>{
protected Class<D> d; //класс объектов.
//---
public ServerObjectPass(S server_in, Class<D> d_in) {
super(server_in);
d = d_in;
}
//--
@Override
public String getButtonText() {
return "";
}
//--
protected Database getDb() {
return server.db;
}
@Override
protected void performFinish() throws Exception {
super.performFinish();
passes.get(getDb().getSynchronizePassCode()).Do();
}
@Override
protected void showDone() throws Exception {
super.showDone();
getDb().tables.get(d).ui_.Show(target.getPK());
}
//-
public boolean fillObjectFields() throws Exception {
return getDb().tables.get(d).ShowAddObjectDialog(target);
}
}

View File

@@ -0,0 +1,13 @@
package Visual_DVM_2021.Passes.Server;
import Common.Global;
import TestingSystem.TestingServer;
public abstract class TestingSystemPass<T> extends RepositoryPass<TestingServer, T> {
public TestingSystemPass() {
super(Global.testingServer);
}
@Override
protected int getTimeout() {
return 120000;
}
//----
}

View File

@@ -1,21 +0,0 @@
package Visual_DVM_2021.Passes;
import Common.Current;
import Common.Database.DBObject;
import Common.Global;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.TestingServer;
import javafx.util.Pair;
public abstract class TestingSystemPass<T> extends RepositoryPass<TestingServer, T> {
public TestingSystemPass() {
super(Global.testingServer);
}
@Override
protected int getTimeout() {
return 120000;
}
public void DeleteAccountObject(DBObject object) throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DeleteAccountObjectByPK, Current.getAccount().email,
new Pair<>(object.getClass(), object.getPK())));
}
}

View File

@@ -183,7 +183,7 @@ public class MainForm extends Form implements MainWindow {
Vector<Test> selected_tests = new Vector<>();
Vector<Test> group_tests = new Vector<>();
for (Test test : Global.testingServer.db.tests.Data.values()) {
if (test.group_id.equals(group.id)) {
if (test.group_id==group.id) {
if (test.isSelected())
selected_tests.add(test);
else