Исправление бага с ид пакетов. теперь они общий для всех пользователей, поэтому не будет пересечания в папках. v++
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
package TestingSystem.Common;
|
||||
import Common.Constants;
|
||||
import Common.Database.DBObject;
|
||||
import Common.Database.iDBObject;
|
||||
import Common.Global;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Account.Account;
|
||||
import GlobalData.Machine.Machine;
|
||||
import GlobalData.RemoteFile.RemoteFile;
|
||||
import GlobalData.Settings.SettingName;
|
||||
import GlobalData.Tasks.TaskState;
|
||||
import GlobalData.User.User;
|
||||
import ProjectData.LanguageName;
|
||||
@@ -38,7 +40,6 @@ import org.apache.commons.io.FileUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
@@ -76,7 +77,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void PublishAction(DBObject object) throws Exception {
|
||||
public void afterPublishAction(DBObject object) throws Exception {
|
||||
if (object instanceof TasksPackage) {
|
||||
//объект уже вставлен.
|
||||
TasksPackage tasksPackage = (TasksPackage) object;
|
||||
@@ -94,7 +95,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
Print("принять задачу на компиляцию " + group_id + ":" + test_id + ":" + task.flags);
|
||||
//Теперь эту задачу надо поставить в очередь. и вернуть пользователю, уже с id
|
||||
task.state = TaskState.Waiting;
|
||||
task.id = db.IncMaxTaskId();
|
||||
task.id = db.IncKey(SettingName.TaskMaxId);
|
||||
task.taskspackage_id = tasksPackage.id;
|
||||
task.makefile_text = group.GenerateMakefile(project, tasksPackage.dvm_drv, task.flags);
|
||||
task.test_home = tasksPackage.user_workspace + "/projects/" + test_id;
|
||||
@@ -106,7 +107,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
account_db.Insert(task);
|
||||
if (task.runTasks != null) {
|
||||
for (TestRunTask rt : task.runTasks) {
|
||||
rt.id = db.IncMaxTaskId();
|
||||
rt.id = db.IncKey(SettingName.TaskMaxId);
|
||||
rt.taskspackage_id = tasksPackage.id;
|
||||
rt.testcompilationtask_id = task.id;
|
||||
rt.remote_workspace =
|
||||
@@ -263,9 +264,9 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
account_db.BeginTransaction();
|
||||
for (Object object : tasks) {
|
||||
SapforTask task = (SapforTask) object;
|
||||
task.id = db.IncSapforMaxTaskId();
|
||||
task.id = db.IncKey(SettingName.SapforTaskMaxId);
|
||||
if (account_db.InsertWithCheck_(task) != null)
|
||||
PublishAction(task);
|
||||
afterPublishAction(task);
|
||||
}
|
||||
account_db.Commit();
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
@@ -302,11 +303,11 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
break;
|
||||
case CheckPackageToKill:
|
||||
SetCurrentAccountDB(request.arg);
|
||||
int packageId = (int) request.object;
|
||||
long packageId = (long) request.object;
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
boolean res_ = false;
|
||||
for (TasksPackageToKill tasksPackageToKill : account_db.packagesToKill.Data.values()) {
|
||||
if (tasksPackageToKill.packageId==packageId) {
|
||||
if (tasksPackageToKill.packageId == packageId) {
|
||||
res_ = true;
|
||||
break;
|
||||
}
|
||||
@@ -335,7 +336,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
account_db.BeginTransaction();
|
||||
for (Object object : objects__)
|
||||
if (account_db.InsertWithCheck_((DBObject) object) != null)
|
||||
PublishAction((DBObject) object);
|
||||
afterPublishAction((DBObject) object);
|
||||
account_db.Commit();
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
break;
|
||||
@@ -429,15 +430,6 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
DeleteAction(account_db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
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:
|
||||
Print("Запросить актуальные данные пакета");
|
||||
sapforTasksPackage = (SapforTasksPackage) request.object;
|
||||
@@ -592,4 +584,31 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user