Исправление бага с ид пакетов. теперь они общий для всех пользователей, поэтому не будет пересечания в папках. v++
This commit is contained in:
21
.idea/workspace.xml
generated
21
.idea/workspace.xml
generated
@@ -8,9 +8,28 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Common/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Constants.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Common/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Global.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/GlobalData/Settings/SettingName.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GlobalData/Settings/SettingName.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/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.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/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TasksDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TasksDatabase.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageToKill/TasksPackageToKill.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageToKill/TasksPackageToKill.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/Tasks/TestTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/Tasks/TestTask.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/TasksPackage/TasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/TasksPackage/TasksPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/TasksPackage/TasksPackageDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/TasksPackage/TasksPackageDBTable.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackage.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackagesDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackagesDBTable.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackagesDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/SapforTasksPackagesDBTable.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortSapforTaskPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortSapforTaskPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortTaskPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AbortTaskPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerAccountObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/DeleteServerAccountObject.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/PublishServerAccountObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/PublishServerAccountObject.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/PublishServerObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/PublishServerObject.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/RepositoryPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/Server/RepositoryPass.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ public class Constants {
|
|||||||
public static final String attachments = "attachments";
|
public static final String attachments = "attachments";
|
||||||
public static final String statistic = "statistic";
|
public static final String statistic = "statistic";
|
||||||
public static final String unknown_metric = " — ";
|
public static final String unknown_metric = " — ";
|
||||||
public static final String old_tests_db_name = "tests2024";
|
public static final String old_tests_db_name = "tests2025";
|
||||||
public static final String tests_db_name = "tests2025";
|
public static final String tests_db_name = "tests2026";
|
||||||
public static final String dateNaN = "NaN";
|
public static final String dateNaN = "NaN";
|
||||||
//пробный коммит. изменение комментария.++
|
//пробный коммит. изменение комментария.++
|
||||||
//кронтаб и перезагрузка
|
//кронтаб и перезагрузка
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ public class Global {
|
|||||||
Utils.CheckDirectory(StsDirectory = Paths.get(Home, Sts).toFile());
|
Utils.CheckDirectory(StsDirectory = Paths.get(Home, Sts).toFile());
|
||||||
Utils.CheckDirectory(TestsDirectory = Paths.get(Home, Tests).toFile());
|
Utils.CheckDirectory(TestsDirectory = Paths.get(Home, Tests).toFile());
|
||||||
Utils.CheckDirectory(PerformanceAnalyzerDirectory = Paths.get(Home, PerformanceAnalyzer).toFile());
|
Utils.CheckDirectory(PerformanceAnalyzerDirectory = Paths.get(Home, PerformanceAnalyzer).toFile());
|
||||||
Utils.CheckDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile());
|
Utils.CheckAndCleanDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile());
|
||||||
}
|
}
|
||||||
public static void CheckServerDirectories() {
|
public static void CheckServerDirectories() {
|
||||||
Utils.CheckDirectory(ComponentsDirectory = Paths.get(Home, components).toFile());
|
Utils.CheckDirectory(ComponentsDirectory = Paths.get(Home, components).toFile());
|
||||||
|
|||||||
@@ -41,6 +41,10 @@ public enum SettingName {
|
|||||||
Email, //для тестирования. потом.
|
Email, //для тестирования. потом.
|
||||||
Pause, //стоит ли тестрование на паузе.
|
Pause, //стоит ли тестрование на паузе.
|
||||||
Queue, //хз нужна ли. будет пересказ пакета в проходе.
|
Queue, //хз нужна ли. будет пересказ пакета в проходе.
|
||||||
|
//---
|
||||||
|
DVMPackageMaxId,
|
||||||
|
SAPFORPackageId,
|
||||||
|
//---
|
||||||
TaskMaxId, //вместо TaskCounter
|
TaskMaxId, //вместо TaskCounter
|
||||||
SapforTaskMaxId, //для тестирования Сапфора.
|
SapforTaskMaxId, //для тестирования Сапфора.
|
||||||
//отображения галок в деревьях.
|
//отображения галок в деревьях.
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class Visualiser extends Component {
|
|||||||
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
|
||||||
@Override
|
@Override
|
||||||
public void GetVersionInfo() {
|
public void GetVersionInfo() {
|
||||||
version = 1029;
|
version = 1030;
|
||||||
String pattern = "MMM dd yyyy HH:mm:ss";
|
String pattern = "MMM dd yyyy HH:mm:ss";
|
||||||
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||||
date_text = df.format(getClassBuildTime());
|
date_text = df.format(getClassBuildTime());
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package Repository;
|
|||||||
import Common.Constants;
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.Database;
|
import Common.Database.Database;
|
||||||
import Common.Database.rDBObject;
|
import Common.Database.iDBObject;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.Utils.InterruptThread;
|
import Common.Utils.InterruptThread;
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
@@ -171,7 +171,9 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
public boolean needsEmail(String email) {
|
public boolean needsEmail(String email) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public void PublishAction(DBObject object) throws Exception {
|
public void beforePublishAction(DBObject object) throws Exception {
|
||||||
|
}
|
||||||
|
public void afterPublishAction(DBObject object) throws Exception {
|
||||||
}
|
}
|
||||||
public boolean canDelete(DBObject object) throws Exception {
|
public boolean canDelete(DBObject object) throws Exception {
|
||||||
return true;
|
return true;
|
||||||
@@ -236,14 +238,6 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
break;
|
break;
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
//<editor-fold desc="Главная база данных">
|
//<editor-fold desc="Главная база данных">
|
||||||
case PublishObject:
|
|
||||||
dbObject = (DBObject) request.object;
|
|
||||||
Print("Опубликовать объект " + dbObject.getPK());
|
|
||||||
db.InsertWithCheck(dbObject);
|
|
||||||
PublishAction(dbObject);
|
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
|
||||||
response.object = (Serializable) dbObject.getPK();
|
|
||||||
break;
|
|
||||||
case CheckObjectExistense:
|
case CheckObjectExistense:
|
||||||
p = (Pair<Class, Object>) request.object;
|
p = (Pair<Class, Object>) request.object;
|
||||||
Print("Проверить существование объекта класса " + p.getKey().toString() + " с ключом " + p.getValue());
|
Print("Проверить существование объекта класса " + p.getKey().toString() + " с ключом " + p.getValue());
|
||||||
@@ -256,7 +250,7 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
db.UpdateWithCheck(new_object);
|
db.UpdateWithCheck(new_object);
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
break;
|
break;
|
||||||
case DeleteObject:
|
case DeleteObject: //устарело. потом убрать. сейчас на это баг репорты повязаны.
|
||||||
dbObject = (DBObject) request.object;
|
dbObject = (DBObject) request.object;
|
||||||
Print("Удалить объект " + dbObject.getPK());
|
Print("Удалить объект " + dbObject.getPK());
|
||||||
db.DeleteWithCheck(dbObject);
|
db.DeleteWithCheck(dbObject);
|
||||||
@@ -297,13 +291,13 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
break;
|
break;
|
||||||
//------------------------
|
//------------------------
|
||||||
case PublishAIObject:
|
case PublishObject:
|
||||||
dbObject = (DBObject) request.object;
|
dbObject = (DBObject) request.object;
|
||||||
Print("Опубликовать объект с автоинкрементным ключом");
|
beforePublishAction(dbObject);
|
||||||
db.Insert(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
|
PublishObject(dbObject);
|
||||||
PublishAction(dbObject);
|
afterPublishAction(dbObject);
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
response.object = (Serializable) dbObject.getPK(); //чтобы пользователь знал, какой ключ.
|
response.object = (Serializable) dbObject.getPK();
|
||||||
break;
|
break;
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
case EXIT:
|
case EXIT:
|
||||||
@@ -351,7 +345,13 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void CopyAction(rDBObject src, rDBObject dst) throws Exception {
|
public void PublishObject(DBObject dbObject) throws Exception {
|
||||||
|
if (dbObject instanceof iDBObject) {
|
||||||
|
Print("Опубликовать объект");
|
||||||
|
db.Insert(dbObject);
|
||||||
|
} else {
|
||||||
|
Print("Опубликовать объект с автоинкрементным ключом");
|
||||||
|
db.InsertWithCheck(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//--
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ public enum ServerCode {
|
|||||||
RefreshDVMTests, //- для админа. получение тестов из репозитория.
|
RefreshDVMTests, //- для админа. получение тестов из репозитория.
|
||||||
PublishSapforPackageTasks,
|
PublishSapforPackageTasks,
|
||||||
//-
|
//-
|
||||||
PublishObject,
|
|
||||||
EditObject,
|
EditObject,
|
||||||
DeleteObject, //--------------------УСТАРЕЛО. УБРАТЬ.
|
DeleteObject, //--------------------УСТАРЕЛО. УБРАТЬ.
|
||||||
GetObjectCopyByPK,
|
GetObjectCopyByPK,
|
||||||
@@ -78,8 +77,9 @@ public enum ServerCode {
|
|||||||
//-
|
//-
|
||||||
OLD,
|
OLD,
|
||||||
//-
|
//-
|
||||||
PublishAIObject, //публикация объекта с автоинкрементом.
|
PublishAccount,
|
||||||
PublishAccountAIObject,
|
GetActualSapforPackageData,
|
||||||
PublishTestProject,
|
//--
|
||||||
GetActualSapforPackageData
|
PublishObject,
|
||||||
|
PublishTestProject
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,9 +70,9 @@ public class TasksDatabase extends SQLiteDatabase {
|
|||||||
}
|
}
|
||||||
super.disconnect();
|
super.disconnect();
|
||||||
}
|
}
|
||||||
public LinkedHashMap<Long, TestRunTask> getPackageRunTasks(int package_id) throws Exception {
|
public LinkedHashMap<Long, TestRunTask> getPackageRunTasks(long package_id) throws Exception {
|
||||||
LinkedHashMap<Long, TestRunTask> res = new LinkedHashMap<>();
|
LinkedHashMap<Long, TestRunTask> res = new LinkedHashMap<>();
|
||||||
selectPackageRunTasks.setInt(1, package_id);
|
selectPackageRunTasks.setLong(1, package_id);
|
||||||
resSet = selectPackageRunTasks.executeQuery();
|
resSet = selectPackageRunTasks.executeQuery();
|
||||||
while (resSet.next()) {
|
while (resSet.next()) {
|
||||||
Pair<Long, TestRunTask> record = readRecord(testRunTasks);
|
Pair<Long, TestRunTask> record = readRecord(testRunTasks);
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ import Common.Database.iDBObject;
|
|||||||
import com.sun.org.glassfish.gmbal.Description;
|
import com.sun.org.glassfish.gmbal.Description;
|
||||||
public class TasksPackageToKill extends iDBObject {
|
public class TasksPackageToKill extends iDBObject {
|
||||||
@Description("DEFAULT -1")
|
@Description("DEFAULT -1")
|
||||||
public int packageId = Constants.Nan;
|
public long packageId = Constants.Nan;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package TestingSystem.Common;
|
package TestingSystem.Common;
|
||||||
import Common.Constants;
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
|
import Common.Database.iDBObject;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
import GlobalData.Account.Account;
|
import GlobalData.Account.Account;
|
||||||
import GlobalData.Machine.Machine;
|
import GlobalData.Machine.Machine;
|
||||||
import GlobalData.RemoteFile.RemoteFile;
|
import GlobalData.RemoteFile.RemoteFile;
|
||||||
|
import GlobalData.Settings.SettingName;
|
||||||
import GlobalData.Tasks.TaskState;
|
import GlobalData.Tasks.TaskState;
|
||||||
import GlobalData.User.User;
|
import GlobalData.User.User;
|
||||||
import ProjectData.LanguageName;
|
import ProjectData.LanguageName;
|
||||||
@@ -38,7 +40,6 @@ import org.apache.commons.io.FileUtils;
|
|||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@@ -76,7 +77,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void PublishAction(DBObject object) throws Exception {
|
public void afterPublishAction(DBObject object) throws Exception {
|
||||||
if (object instanceof TasksPackage) {
|
if (object instanceof TasksPackage) {
|
||||||
//объект уже вставлен.
|
//объект уже вставлен.
|
||||||
TasksPackage tasksPackage = (TasksPackage) object;
|
TasksPackage tasksPackage = (TasksPackage) object;
|
||||||
@@ -94,7 +95,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
Print("принять задачу на компиляцию " + group_id + ":" + test_id + ":" + task.flags);
|
Print("принять задачу на компиляцию " + group_id + ":" + test_id + ":" + task.flags);
|
||||||
//Теперь эту задачу надо поставить в очередь. и вернуть пользователю, уже с id
|
//Теперь эту задачу надо поставить в очередь. и вернуть пользователю, уже с id
|
||||||
task.state = TaskState.Waiting;
|
task.state = TaskState.Waiting;
|
||||||
task.id = db.IncMaxTaskId();
|
task.id = db.IncKey(SettingName.TaskMaxId);
|
||||||
task.taskspackage_id = tasksPackage.id;
|
task.taskspackage_id = tasksPackage.id;
|
||||||
task.makefile_text = group.GenerateMakefile(project, tasksPackage.dvm_drv, task.flags);
|
task.makefile_text = group.GenerateMakefile(project, tasksPackage.dvm_drv, task.flags);
|
||||||
task.test_home = tasksPackage.user_workspace + "/projects/" + test_id;
|
task.test_home = tasksPackage.user_workspace + "/projects/" + test_id;
|
||||||
@@ -106,7 +107,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
account_db.Insert(task);
|
account_db.Insert(task);
|
||||||
if (task.runTasks != null) {
|
if (task.runTasks != null) {
|
||||||
for (TestRunTask rt : task.runTasks) {
|
for (TestRunTask rt : task.runTasks) {
|
||||||
rt.id = db.IncMaxTaskId();
|
rt.id = db.IncKey(SettingName.TaskMaxId);
|
||||||
rt.taskspackage_id = tasksPackage.id;
|
rt.taskspackage_id = tasksPackage.id;
|
||||||
rt.testcompilationtask_id = task.id;
|
rt.testcompilationtask_id = task.id;
|
||||||
rt.remote_workspace =
|
rt.remote_workspace =
|
||||||
@@ -263,9 +264,9 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
account_db.BeginTransaction();
|
account_db.BeginTransaction();
|
||||||
for (Object object : tasks) {
|
for (Object object : tasks) {
|
||||||
SapforTask task = (SapforTask) object;
|
SapforTask task = (SapforTask) object;
|
||||||
task.id = db.IncSapforMaxTaskId();
|
task.id = db.IncKey(SettingName.SapforTaskMaxId);
|
||||||
if (account_db.InsertWithCheck_(task) != null)
|
if (account_db.InsertWithCheck_(task) != null)
|
||||||
PublishAction(task);
|
afterPublishAction(task);
|
||||||
}
|
}
|
||||||
account_db.Commit();
|
account_db.Commit();
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
@@ -302,11 +303,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
break;
|
break;
|
||||||
case CheckPackageToKill:
|
case CheckPackageToKill:
|
||||||
SetCurrentAccountDB(request.arg);
|
SetCurrentAccountDB(request.arg);
|
||||||
int packageId = (int) request.object;
|
long packageId = (long) request.object;
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
boolean res_ = false;
|
boolean res_ = false;
|
||||||
for (TasksPackageToKill tasksPackageToKill : account_db.packagesToKill.Data.values()) {
|
for (TasksPackageToKill tasksPackageToKill : account_db.packagesToKill.Data.values()) {
|
||||||
if (tasksPackageToKill.packageId==packageId) {
|
if (tasksPackageToKill.packageId == packageId) {
|
||||||
res_ = true;
|
res_ = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -335,7 +336,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
account_db.BeginTransaction();
|
account_db.BeginTransaction();
|
||||||
for (Object object : objects__)
|
for (Object object : objects__)
|
||||||
if (account_db.InsertWithCheck_((DBObject) object) != null)
|
if (account_db.InsertWithCheck_((DBObject) object) != null)
|
||||||
PublishAction((DBObject) object);
|
afterPublishAction((DBObject) object);
|
||||||
account_db.Commit();
|
account_db.Commit();
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
break;
|
break;
|
||||||
@@ -429,15 +430,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
DeleteAction(account_db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));
|
DeleteAction(account_db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
break;
|
break;
|
||||||
case PublishAccountAIObject:
|
|
||||||
Print("Опубликовать объект с автоинкрементным ключом для пользователя " + request.arg);
|
|
||||||
SetCurrentAccountDB(request.arg);
|
|
||||||
dbObject = (DBObject) request.object;
|
|
||||||
account_db.Insert(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
|
|
||||||
PublishAction(dbObject);
|
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
|
||||||
response.object = (Serializable) dbObject.getPK(); //чтобы пользователь знал, какой ключ.
|
|
||||||
break;
|
|
||||||
case GetActualSapforPackageData:
|
case GetActualSapforPackageData:
|
||||||
Print("Запросить актуальные данные пакета");
|
Print("Запросить актуальные данные пакета");
|
||||||
sapforTasksPackage = (SapforTasksPackage) request.object;
|
sapforTasksPackage = (SapforTasksPackage) request.object;
|
||||||
@@ -592,4 +584,31 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void PublishObject(DBObject dbObject) throws Exception {
|
||||||
|
if (request.arg == null)
|
||||||
|
super.PublishObject(dbObject);
|
||||||
|
else {
|
||||||
|
SetCurrentAccountDB(request.arg);
|
||||||
|
if (dbObject instanceof iDBObject) {
|
||||||
|
Print("Опубликовать объект для пользователя " + request.arg);
|
||||||
|
account_db.Insert(dbObject);
|
||||||
|
} else {
|
||||||
|
Print("Опубликовать объект с автоинкрементным ключом " + request.arg);
|
||||||
|
account_db.InsertWithCheck(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void beforePublishAction(DBObject object) throws Exception {
|
||||||
|
if (object instanceof TasksPackage) {
|
||||||
|
TasksPackage tasksPackage = (TasksPackage) object;
|
||||||
|
tasksPackage.id = db.IncKey(SettingName.DVMPackageMaxId);
|
||||||
|
} else {
|
||||||
|
if (object instanceof SapforTasksPackage) {
|
||||||
|
SapforTasksPackage sapforTasksPackage = (SapforTasksPackage) object;
|
||||||
|
sapforTasksPackage.id = db.IncKey(SettingName.SAPFORPackageId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,15 @@ public class TestsDatabase extends SQLiteDatabase {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void Init() throws Exception {
|
public void Init() throws Exception {
|
||||||
|
if (!settings.containsKey(SettingName.DVMPackageMaxId))
|
||||||
|
Insert(new TSetting(SettingName.DVMPackageMaxId, 0));
|
||||||
|
//-
|
||||||
|
if (!settings.containsKey(SettingName.SAPFORPackageId))
|
||||||
|
Insert(new TSetting(SettingName.SAPFORPackageId, 0));
|
||||||
|
//-
|
||||||
if (!settings.containsKey(SettingName.TaskMaxId))
|
if (!settings.containsKey(SettingName.TaskMaxId))
|
||||||
Insert(new TSetting(SettingName.TaskMaxId, 0));
|
Insert(new TSetting(SettingName.TaskMaxId, 0));
|
||||||
|
//-
|
||||||
if (!settings.containsKey(SettingName.SapforTaskMaxId))
|
if (!settings.containsKey(SettingName.SapforTaskMaxId))
|
||||||
Insert(new TSetting(SettingName.SapforTaskMaxId, 0));
|
Insert(new TSetting(SettingName.SapforTaskMaxId, 0));
|
||||||
}
|
}
|
||||||
@@ -48,15 +55,8 @@ public class TestsDatabase extends SQLiteDatabase {
|
|||||||
public PassCode_2021 getSynchronizePassCode() {
|
public PassCode_2021 getSynchronizePassCode() {
|
||||||
return PassCode_2021.SynchronizeTests;
|
return PassCode_2021.SynchronizeTests;
|
||||||
}
|
}
|
||||||
public long IncMaxTaskId() throws Exception {
|
public long IncKey(SettingName settingName) throws Exception{
|
||||||
TSetting setting = settings.get(SettingName.TaskMaxId);
|
TSetting setting = settings.get(settingName);
|
||||||
long res = setting.value;
|
|
||||||
setting.value++;
|
|
||||||
Update(setting);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
public long IncSapforMaxTaskId() throws Exception {
|
|
||||||
TSetting setting = settings.get(SettingName.SapforTaskMaxId);
|
|
||||||
long res = setting.value;
|
long res = setting.value;
|
||||||
setting.value++;
|
setting.value++;
|
||||||
Update(setting);
|
Update(setting);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class TestTask extends DBObject {
|
|||||||
@Description("PRIMARY KEY, UNIQUE")
|
@Description("PRIMARY KEY, UNIQUE")
|
||||||
public long id = Constants.Nan;
|
public long id = Constants.Nan;
|
||||||
@Description("DEFAULT '-1'")
|
@Description("DEFAULT '-1'")
|
||||||
public int taskspackage_id = Constants.Nan;
|
public long taskspackage_id = Constants.Nan;
|
||||||
@Description("DEFAULT -1")
|
@Description("DEFAULT -1")
|
||||||
public int group_id = Constants.Nan;
|
public int group_id = Constants.Nan;
|
||||||
@Description("DEFAULT ''")
|
@Description("DEFAULT ''")
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
package TestingSystem.DVM.TasksPackage;
|
package TestingSystem.DVM.TasksPackage;
|
||||||
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.riDBObject;
|
|
||||||
import GlobalData.Machine.MachineType;
|
import GlobalData.Machine.MachineType;
|
||||||
import TestingSystem.DVM.Tasks.TestCompilationTask;
|
import TestingSystem.DVM.Tasks.TestCompilationTask;
|
||||||
import com.sun.org.glassfish.gmbal.Description;
|
import com.sun.org.glassfish.gmbal.Description;
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class TasksPackage extends riDBObject {
|
public class TasksPackage extends DBObject {
|
||||||
|
@Description("PRIMARY KEY, UNIQUE")
|
||||||
|
public long id = Constants.Nan;
|
||||||
public String pid=""; //сишная часть.
|
public String pid=""; //сишная часть.
|
||||||
public String summary = "";
|
public String summary = "";
|
||||||
//---
|
//---
|
||||||
@@ -38,6 +40,10 @@ public class TasksPackage extends riDBObject {
|
|||||||
//нужно только для публикации задач.
|
//нужно только для публикации задач.
|
||||||
public LinkedHashMap<Integer, LinkedHashMap<Integer, Vector<TestCompilationTask>>> sorted_tasks = new LinkedHashMap<>();
|
public LinkedHashMap<Integer, LinkedHashMap<Integer, Vector<TestCompilationTask>>> sorted_tasks = new LinkedHashMap<>();
|
||||||
@Override
|
@Override
|
||||||
|
public Object getPK() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
public void SynchronizeFields(DBObject src) {
|
public void SynchronizeFields(DBObject src) {
|
||||||
super.SynchronizeFields(src);
|
super.SynchronizeFields(src);
|
||||||
TasksPackage tasksPackage = (TasksPackage) src;
|
TasksPackage tasksPackage = (TasksPackage) src;
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import java.util.LinkedHashMap;
|
|||||||
|
|
||||||
import static Common.UI.Tables.TableRenderers.RendererDate;
|
import static Common.UI.Tables.TableRenderers.RendererDate;
|
||||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||||
public class TasksPackageDBTable extends iDBTable<TasksPackage> {
|
public class TasksPackageDBTable extends DBTable<Long,TasksPackage> {
|
||||||
|
|
||||||
public TasksPackageDBTable() {
|
public TasksPackageDBTable() {
|
||||||
super(TasksPackage.class);
|
super(Long.class,TasksPackage.class);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Current CurrentName() {
|
public Current CurrentName() {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class SapforTask extends DBObject {
|
|||||||
public int sapfor_configuration_id = Constants.Nan;
|
public int sapfor_configuration_id = Constants.Nan;
|
||||||
@Expose
|
@Expose
|
||||||
@Description("DEFAULT '-1'")
|
@Description("DEFAULT '-1'")
|
||||||
public int sapfortaskspackage_id = Constants.Nan;
|
public long sapfortaskspackage_id = Constants.Nan;
|
||||||
//------------------------------------->>
|
//------------------------------------->>
|
||||||
@Description("DEFAULT ''")
|
@Description("DEFAULT ''")
|
||||||
@Expose
|
@Expose
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package TestingSystem.SAPFOR.SapforTasksPackage;
|
package TestingSystem.SAPFOR.SapforTasksPackage;
|
||||||
import Common.Constants;
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.riDBObject;
|
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
import TestingSystem.DVM.TasksPackage.TasksPackageState;
|
import TestingSystem.DVM.TasksPackage.TasksPackageState;
|
||||||
@@ -12,7 +11,9 @@ import com.sun.org.glassfish.gmbal.Description;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
public class SapforTasksPackage extends riDBObject {
|
public class SapforTasksPackage extends DBObject {
|
||||||
|
@Description("PRIMARY KEY, UNIQUE")
|
||||||
|
public long id = Constants.Nan;
|
||||||
@Description("DEFAULT ''")
|
@Description("DEFAULT ''")
|
||||||
public String testsNames = "";//имена тестов через ; для отображения
|
public String testsNames = "";//имена тестов через ; для отображения
|
||||||
//---
|
//---
|
||||||
@@ -72,6 +73,10 @@ public class SapforTasksPackage extends riDBObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
public Object getPK() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
public void SynchronizeFields(DBObject src) {
|
public void SynchronizeFields(DBObject src) {
|
||||||
super.SynchronizeFields(src);
|
super.SynchronizeFields(src);
|
||||||
SapforTasksPackage p = (SapforTasksPackage) src;
|
SapforTasksPackage p = (SapforTasksPackage) src;
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import java.util.LinkedHashMap;
|
|||||||
|
|
||||||
import static Common.UI.Tables.TableRenderers.RendererDate;
|
import static Common.UI.Tables.TableRenderers.RendererDate;
|
||||||
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
|
||||||
public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
|
public class SapforTasksPackagesDBTable extends DBTable<Long,SapforTasksPackage> {
|
||||||
public SapforTasksPackagesDBTable() {
|
public SapforTasksPackagesDBTable() {
|
||||||
super(SapforTasksPackage.class);
|
super(Long.class,SapforTasksPackage.class);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Current CurrentName() {
|
public Current CurrentName() {
|
||||||
@@ -31,7 +31,7 @@ public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
|
|||||||
@Override
|
@Override
|
||||||
protected void AdditionalInitColumns() {
|
protected void AdditionalInitColumns() {
|
||||||
// columns.get(0).setVisible(false);
|
// columns.get(0).setVisible(false);
|
||||||
columns.get(2).setMaxWidth(100);
|
columns.get(2).setMaxWidth(200);
|
||||||
columns.get(5).setRenderer(RendererDate);
|
columns.get(5).setRenderer(RendererDate);
|
||||||
columns.get(6).setRenderer(RendererDate);
|
columns.get(6).setRenderer(RendererDate);
|
||||||
columns.get(7).setRenderer(RendererStatusEnum);
|
columns.get(7).setRenderer(RendererStatusEnum);
|
||||||
|
|||||||
@@ -36,6 +36,6 @@ public class AbortSapforTaskPackage extends TestingSystemPass<SapforTasksPackage
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected void ServerAction() throws Exception {
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishAccountAIObject, Current.getAccount().email, tasksPackageToKill));
|
Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, Current.getAccount().email, tasksPackageToKill));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class AbortTaskPackage extends TestingSystemPass<TasksPackage> {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected void ServerAction() throws Exception {
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishAccountAIObject, Current.getAccount().email, tasksPackageToKill));
|
Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, Current.getAccount().email, tasksPackageToKill));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package Visual_DVM_2021.Passes.Server;
|
package Visual_DVM_2021.Passes.Server;
|
||||||
import Common.Current;
|
import Common.Current;
|
||||||
|
import Common.Database.DBObject;
|
||||||
import Common.Database.Database;
|
import Common.Database.Database;
|
||||||
import Common.Database.riDBObject;
|
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Repository.Server.ServerCode;
|
import Repository.Server.ServerCode;
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
import Repository.Server.ServerExchangeUnit_2021;
|
||||||
import TestingSystem.Common.TestingServer;
|
import TestingSystem.Common.TestingServer;
|
||||||
import javafx.util.Pair;
|
import javafx.util.Pair;
|
||||||
public class DeleteServerAccountObject<D extends riDBObject> extends DeleteServerObject<TestingServer, D> {
|
public class DeleteServerAccountObject<D extends DBObject> extends DeleteServerObject<TestingServer, D> {
|
||||||
public DeleteServerAccountObject(Class<D> d_in) {
|
public DeleteServerAccountObject(Class<D> d_in) {
|
||||||
super(Global.testingServer, d_in);
|
super(Global.testingServer, d_in);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ import Common.Current;
|
|||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.Database;
|
import Common.Database.Database;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Repository.Server.ServerCode;
|
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
|
||||||
import TestingSystem.Common.TestingServer;
|
import TestingSystem.Common.TestingServer;
|
||||||
public class PublishServerAccountObject<D extends DBObject> extends PublishServerObject<TestingServer, D> {
|
public class PublishServerAccountObject<D extends DBObject> extends PublishServerObject<TestingServer, D> {
|
||||||
public PublishServerAccountObject(Class<D> d_in) {
|
public PublishServerAccountObject(Class<D> d_in) {
|
||||||
@@ -15,7 +13,7 @@ public class PublishServerAccountObject<D extends DBObject> extends PublishServe
|
|||||||
return Global.testingServer.account_db;
|
return Global.testingServer.account_db;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected String getEmail() {
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishAccountAIObject, Current.getAccount().email, target));
|
return Current.getAccount().email;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import Common.Current;
|
|||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.riDBObject;
|
import Common.Database.riDBObject;
|
||||||
import Repository.RepositoryServer;
|
import Repository.RepositoryServer;
|
||||||
|
import Repository.Server.ServerCode;
|
||||||
|
import Repository.Server.ServerExchangeUnit_2021;
|
||||||
public class PublishServerObject<S extends RepositoryServer, D extends DBObject> extends ServerObjectPass<S, D> {
|
public class PublishServerObject<S extends RepositoryServer, D extends DBObject> extends ServerObjectPass<S, D> {
|
||||||
public Object pk = null;
|
public Object pk = null;
|
||||||
public PublishServerObject(S server_in, Class<D> d_in) {
|
public PublishServerObject(S server_in, Class<D> d_in) {
|
||||||
@@ -27,10 +29,11 @@ public class PublishServerObject<S extends RepositoryServer, D extends DBObject>
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
protected String getEmail(){return null;}
|
||||||
//--
|
//--
|
||||||
@Override
|
@Override
|
||||||
protected void ServerAction() throws Exception {
|
protected void ServerAction() throws Exception {
|
||||||
PublishObject(target);
|
Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, getEmail(), target));
|
||||||
pk = response.object;
|
pk = response.object;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package Visual_DVM_2021.Passes.Server;
|
package Visual_DVM_2021.Passes.Server;
|
||||||
import Common.Constants;
|
import Common.Constants;
|
||||||
import Common.Database.DBObject;
|
import Common.Database.DBObject;
|
||||||
import Common.Database.iDBObject;
|
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.Utils.Utils;
|
import Common.Utils.Utils;
|
||||||
import Repository.RepositoryRefuseException;
|
import Repository.RepositoryRefuseException;
|
||||||
@@ -119,14 +118,6 @@ public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass
|
|||||||
} else
|
} else
|
||||||
super.CheckException(ex);
|
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 {
|
public void EditObject(DBObject object) throws Exception {
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.EditObject, "", object));
|
Command(new ServerExchangeUnit_2021(ServerCode.EditObject, "", object));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user