промежуточный. Убираю проходы дублирования групп и конфигураций. Не нужны.
This commit is contained in:
19
.idea/workspace.xml
generated
19
.idea/workspace.xml
generated
@@ -7,14 +7,21 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/src/Common/Database/riDBObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Database/DBObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/DBObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Database/iDBObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/iDBObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/Database/nDBObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/nDBObject.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/ConfigurationsMenuBar/ConfigurationsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/ConfigurationsMenuBar/ConfigurationsMenuBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/GroupsMenuBar/GroupsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/GroupsMenuBar/GroupsMenuBar.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/RepositoryServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/SapforTestingSystem/SapforTasksPackageSupervisor/SapforTasksPackageSupervisor.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingPlanner.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Group/Group.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Group/Group.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CopyConfigurations.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CopyGroups.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CopyServerObjects.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
||||
@@ -42,7 +42,7 @@ public abstract class DBObject implements Selectable, Serializable {
|
||||
//статус. например завершенность багрепорта или состояние задачи на запуск. как правило обладает цветным шрифтом.
|
||||
//как объект будут называть по внешним ключам.
|
||||
public String getFKName() {
|
||||
return null;
|
||||
return getClass().getSimpleName().toLowerCase() + "_id";
|
||||
}
|
||||
public Object getEmptyFK() {
|
||||
return null;
|
||||
@@ -61,4 +61,5 @@ public abstract class DBObject implements Selectable, Serializable {
|
||||
this.SynchronizeFields(src);
|
||||
}
|
||||
//---------
|
||||
|
||||
}
|
||||
|
||||
@@ -10,10 +10,6 @@ public class iDBObject extends DBObject {
|
||||
return id;
|
||||
}
|
||||
@Override
|
||||
public String getFKName() {
|
||||
return getClass().getSimpleName().toLowerCase() + "_id";
|
||||
}
|
||||
@Override
|
||||
public Object getEmptyFK() {
|
||||
return Constants.Nan;
|
||||
}
|
||||
|
||||
@@ -2,9 +2,6 @@ package Common.Database;
|
||||
import Common.Utils.Utils;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
public abstract class nDBObject extends DBObject {
|
||||
String getClassNameL() {
|
||||
return getClass().getSimpleName().toLowerCase();
|
||||
}
|
||||
@Description("PRIMARY KEY, UNIQUE")
|
||||
public String id = "";
|
||||
@Override
|
||||
@@ -12,15 +9,11 @@ public abstract class nDBObject extends DBObject {
|
||||
return id;
|
||||
}
|
||||
@Override
|
||||
public String getFKName() {
|
||||
return getClassNameL() + "_id";
|
||||
}
|
||||
@Override
|
||||
public Object getEmptyFK() {
|
||||
return "";
|
||||
}
|
||||
public void genName() {
|
||||
id = Utils.getDateName(getClassNameL());
|
||||
id = Utils.getDateName(getClass().getSimpleName().toLowerCase());
|
||||
}
|
||||
//-
|
||||
@Override
|
||||
|
||||
17
src/Common/Database/riDBObject.java
Normal file
17
src/Common/Database/riDBObject.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package Common.Database;
|
||||
public class riDBObject extends iDBObject{
|
||||
//-
|
||||
public String sender_name = "";
|
||||
public String sender_address = "";
|
||||
public String description = "";
|
||||
//-
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
//--
|
||||
riDBObject r = (riDBObject) src;
|
||||
sender_name = r.sender_name;
|
||||
sender_address = r.sender_address;
|
||||
description = r.description;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ public class ConfigurationsMenuBar extends DataMenuBar {
|
||||
addPasses(
|
||||
PassCode_2021.StartTests,
|
||||
PassCode_2021.PublishConfiguration,
|
||||
PassCode_2021.CopyConfigurations,
|
||||
PassCode_2021.EditConfiguration,
|
||||
PassCode_2021.DeleteSelectedConfigurations
|
||||
);
|
||||
|
||||
@@ -9,7 +9,7 @@ import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import javax.swing.*;
|
||||
public class GroupsMenuBar extends DataMenuBar {
|
||||
public GroupsMenuBar() {
|
||||
super("группы", PassCode_2021.SynchronizeTests, PassCode_2021.DownloadGroup, PassCode_2021.ConvertCorrectnessTests, PassCode_2021.PublishGroup, PassCode_2021.CopyGroups, PassCode_2021.EditGroup, PassCode_2021.DeleteSelectedGroups);
|
||||
super("группы", PassCode_2021.SynchronizeTests, PassCode_2021.DownloadGroup, PassCode_2021.ConvertCorrectnessTests, PassCode_2021.PublishGroup,PassCode_2021.EditGroup, PassCode_2021.DeleteSelectedGroups);
|
||||
add(new JSeparator());
|
||||
add(new MenuBarButton() {
|
||||
{
|
||||
|
||||
@@ -240,29 +240,6 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = db.checkObjectExistense(p.getKey(), p.getValue());
|
||||
break;
|
||||
case CopyObjects:
|
||||
String[] data = request.arg.split("\n");
|
||||
String sender_name = data[0];
|
||||
String sender_address = data[1];
|
||||
Print("Дублировать объекты для пользователя " + sender_name + ":" + sender_address);
|
||||
Vector<Object> src = (Vector<Object>) request.object;
|
||||
Vector<Object> dst = new Vector<>();
|
||||
for (Object object : src) {
|
||||
if (object instanceof rDBObject) {
|
||||
rDBObject copy = (rDBObject) object.getClass().newInstance();
|
||||
copy.SynchronizeFields((rDBObject) object);
|
||||
copy.genName();
|
||||
copy.sender_name = sender_name;
|
||||
copy.sender_address = sender_address;
|
||||
CopyAction((rDBObject) object, copy);
|
||||
dst.add(copy);
|
||||
db.Insert(copy);
|
||||
} else
|
||||
throw new RepositoryRefuseException("Поддерживается дублирование только объектов типа rDBObject");
|
||||
}
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
response.object = dst;
|
||||
break;
|
||||
case EditObject:
|
||||
DBObject new_object = (DBObject) request.object;
|
||||
Print("Редактировать объект " + new_object.getPK());
|
||||
@@ -303,6 +280,15 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
db.Commit();
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
break;
|
||||
//------------------------
|
||||
case PublishAIObject:
|
||||
dbObject = (DBObject) request.object;
|
||||
Print("Опубликовать объект с автоинкрементным ключом" + dbObject.getPK());
|
||||
db.Insert(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
|
||||
PublishAction(dbObject);
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
break;
|
||||
//------------------------
|
||||
case EXIT:
|
||||
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
|
||||
System.exit(0);
|
||||
|
||||
@@ -29,7 +29,6 @@ public enum ServerCode {
|
||||
PublishSapforPackageTasks,
|
||||
//-
|
||||
PublishObject,
|
||||
CopyObjects, //использовать с осторожностью. проверять CopyAction на тему первичного ключа.
|
||||
EditObject,
|
||||
DeleteObject,
|
||||
GetObjectCopyByPK,
|
||||
@@ -76,5 +75,7 @@ public enum ServerCode {
|
||||
//-
|
||||
DeleteAccountObjectByPK,
|
||||
//-
|
||||
OLD
|
||||
OLD,
|
||||
//-
|
||||
PublishAIObject, //публикация объекта с автоинкрементом.
|
||||
}
|
||||
|
||||
@@ -17,8 +17,10 @@ public class Group extends rDBObject {
|
||||
public TestType type = TestType.Default;
|
||||
@Description("DEFAULT 'fortran'")
|
||||
public LanguageName language = LanguageName.fortran;
|
||||
//--
|
||||
@Description("IGNORE")
|
||||
public LinkedHashMap<String, byte[]> testsFiles = new LinkedHashMap<>(); //транспорт.
|
||||
//--
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package TestingSystem;
|
||||
import Common.Constants;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.rDBObject;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Machine.Machine;
|
||||
@@ -34,7 +33,6 @@ import Visual_DVM_2021.Passes.All.ZipFolderPass;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
import javafx.util.Pair;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
@@ -43,7 +41,6 @@ import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static Common.Constants.tests_db_name;
|
||||
public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
@@ -134,30 +131,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void CopyAction(rDBObject src, rDBObject dst) throws Exception {
|
||||
if (src instanceof Group) {
|
||||
Group groupSrc = (Group) src;
|
||||
Group groupDst = (Group) dst;
|
||||
//тут есть право использовать Базу данных напрямую, ибо проход в серверной очереди.
|
||||
//1. Получить список тестов.
|
||||
Vector<Test> toCopy = db.tests.Data.values().stream().filter(test -> test.group_id.equals(groupSrc.id)).collect(Collectors.toCollection(Vector::new));
|
||||
for (Test testSrc : toCopy) {
|
||||
Test testCopy = new Test(testSrc);
|
||||
testCopy.genName();
|
||||
testCopy.sender_name = groupDst.sender_name;
|
||||
testCopy.sender_address = groupDst.sender_address;
|
||||
testCopy.group_id = groupDst.id;
|
||||
//1 скопировать папку
|
||||
FileUtils.copyDirectory(TestInterface.getServerPath(testSrc), TestInterface.getServerPath(testCopy));
|
||||
//создать архив из скопированной папки.
|
||||
ZipFolderPass zip = new ZipFolderPass();
|
||||
if (!zip.Do(TestInterface.getServerPath(testCopy).getAbsolutePath(), TestInterface.getArchive(testCopy).getAbsolutePath()))
|
||||
throw new RepositoryRefuseException("Не удалось создать архив копии теста");
|
||||
db.Insert(testCopy);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void DeleteAction(DBObject object) throws Exception {
|
||||
if (object instanceof Test) {
|
||||
Test test = (Test) object;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import TestingSystem.Configuration.Configuration;
|
||||
public class CopyConfigurations extends CopyServerObjects{
|
||||
public CopyConfigurations() {
|
||||
super(Configuration.class);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import TestingSystem.Group.Group;
|
||||
public class CopyGroups extends CopyServerObjects{
|
||||
public CopyGroups() {
|
||||
super(Group.class);
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Current;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.DataSet;
|
||||
import Common.Database.rDBObject;
|
||||
import Common.UI.UI;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.TestingSystemPass;
|
||||
|
||||
import java.util.Vector;
|
||||
public class CopyServerObjects extends TestingSystemPass<Vector<DBObject>> {
|
||||
@Override
|
||||
protected int getTimeout() {
|
||||
return 400000;
|
||||
}
|
||||
Class objects_class;
|
||||
Vector<String> names;
|
||||
public CopyServerObjects(Class class_in) {
|
||||
objects_class = class_in;
|
||||
}
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Editor/Copy.png";
|
||||
}
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (Current.getAccount().CheckRegistered(Log)) {
|
||||
DataSet table = server.db.tables.get(objects_class);
|
||||
if (table.getCheckedCount() == 0) {
|
||||
Log.Writeln_("Не отмечено ни одного объекта.");
|
||||
return false;
|
||||
}
|
||||
Vector checkedItems = table.getCheckedItems();
|
||||
target = new Vector<>();
|
||||
names = new Vector<>();
|
||||
for (Object o : checkedItems) {
|
||||
rDBObject r = (rDBObject) o;
|
||||
names.add(r.description);
|
||||
target.add(r);
|
||||
}
|
||||
return UI.Warning(getDescription() + "\n" + String.join("\n", names));
|
||||
} else return false;
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.CopyObjects, Current.getAccount().name + "\n" + Current.getAccount().email, target));
|
||||
}
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
super.performFinish();
|
||||
passes.get(PassCode_2021.SynchronizeTests).Do();
|
||||
}
|
||||
}
|
||||
@@ -264,8 +264,6 @@ public enum PassCode_2021 {
|
||||
DeleteSelectedConfigurations,
|
||||
SwitchTestingEmail,
|
||||
//-
|
||||
CopyConfigurations,
|
||||
CopyGroups,
|
||||
DownloadTaskTest,
|
||||
//-
|
||||
GetTestsQueueSize,
|
||||
@@ -441,10 +439,6 @@ public enum PassCode_2021 {
|
||||
return "Очередь перед текущим пакетом";
|
||||
case DownloadTaskTest:
|
||||
return "Загрузить тест текущей задачи";
|
||||
case CopyGroups:
|
||||
return "Дублировать отмеченные группы";
|
||||
case CopyConfigurations:
|
||||
return "Дублировать отмеченные конфигурации";
|
||||
case SwitchTestingEmail:
|
||||
return "Настроить отправку оповещений тестирования";
|
||||
case DeleteSelectedConfigurations:
|
||||
|
||||
Reference in New Issue
Block a user