рефакторинг. неудачные наименования классов, и остатки старых вариантов

This commit is contained in:
2023-10-08 01:06:55 +03:00
parent 49805f1293
commit eedddcd7d3
42 changed files with 295 additions and 1415 deletions

View File

@@ -3,7 +3,7 @@ import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class PackageModeScenario_json {
public class SapforTasksPackage_json {
@Expose
public String sapfor_drv = ""; //файл с сапфором. Имя уникально для сценария.
@Expose

View File

@@ -4,7 +4,7 @@ import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class SapforScenarioResults_json {
public class SapforTasksResults_json {
@Expose
public long StartDate = 0;
@Expose

View File

@@ -1,20 +0,0 @@
package SapforTestingSystem.SapforScenario;
import Common.Database.iDBObject;
import TestingSystem.TasksPackage.TasksPackageState;
import com.sun.org.glassfish.gmbal.Description;
public class SapforScenario extends iDBObject {
@Description("DEFAULT ''")
public String testsNames = "";//имена тестов через ; для отображения
//---
public String sapfor_version = "?"; //тестируемая версия SAPFOR
public long sapfor_build_date = 0;
//---
public String workspace = ""; //домашняя папка
//---
public int tasksCount = 0; //Общее число задач
//---
public long StartDate = 0; //дата начала выполнения
public long ChangeDate = 0;//дата окончания выполнения
//-
public TasksPackageState state = TasksPackageState.Queued;
}

View File

@@ -1,85 +0,0 @@
package SapforTestingSystem.SapforScenario;
import Common.Current;
import Common.Database.iDBTable;
import Common.UI.DataSetControlForm;
import java.util.Date;
import static Common.UI.Tables.TableRenderers.RendererDate;
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
public class SapforScenariosDBTable extends iDBTable<SapforScenario> {
public SapforScenariosDBTable() {
super(SapforScenario.class);
}
@Override
public Current CurrentName() {
return Current.SapforScenario;
}
@Override
public String getSingleDescription() {
return "сценарий Sapfor";
}
@Override
public String getPluralDescription() {
return "сценарии Sapfor";
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
protected void AdditionalInitColumns() {
columns.get(4).setRenderer(RendererDate);
columns.get(5).setRenderer(RendererDate);
columns.get(6).setRenderer(RendererStatusEnum);
}
@Override
public void ShowCurrentObject() throws Exception {
super.ShowCurrentObject();
// UI.getNewMainWindow().getTestingWindow().DropTestRunTasksComparison();
}
@Override
public void ShowNoCurrentObject() throws Exception {
super.ShowNoCurrentObject();
// UI.getNewMainWindow().getTestingWindow().DropTestRunTasksComparison();
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"SAPFOR",
"Тесты",
"Задач",
"Начало",
"Изменено",
"Статус"
};
}
@Override
public Object getFieldAt(SapforScenario object, int columnIndex) {
switch (columnIndex) {
case 1:
return object.sapfor_version;
case 2:
return object.testsNames;
case 3:
return object.tasksCount;
case 4:
return new Date(object.StartDate);
case 5:
return new Date(object.ChangeDate);
case 6:
return object.state;
default:
return null;
}
}
/*
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(SapforTasksPackage.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
return res;
}
*/
}

View File

@@ -22,6 +22,9 @@ public class SapforTask extends DBObject {
@Description("DEFAULT ''")
@Expose
public String root = "";
@Description("DEFAULT ''")
@Expose
public String last_version = "";
//-------------------------------------->>
@Description("DEFAULT 'Inactive'")
@Expose

View File

@@ -1,16 +0,0 @@
package SapforTestingSystem.SapforTask;
import Common.Database.DBObject;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
public class SapforTaskResult extends DBObject {
public SapforTasksPackage sapforTasksPackage;
public SapforTask task;
public MatchState match_state = MatchState.Unknown;
@Override
public Object getPK() {
return task.test_description;
}
public SapforTaskResult(SapforTasksPackage package_in, SapforTask task_in) {
sapforTasksPackage = package_in;
task = task_in;
}
}

View File

@@ -2,8 +2,6 @@ package SapforTestingSystem.SapforTask;
import Common.Current;
import Common.Database.DBTable;
import Common.UI.DataSetControlForm;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
public class SapforTasksDBTable extends DBTable<Long, SapforTask> {
@@ -31,7 +29,7 @@ public class SapforTasksDBTable extends DBTable<Long, SapforTask> {
}
@Override
public void MouseAction2() throws Exception {
Pass_2021.passes.get(PassCode_2021.OpenSapforTest).Do();
// Pass_2021.passes.get(PassCode_2021.OpenSapforTest).Do();
}
};
}

View File

@@ -1,50 +1,26 @@
package SapforTestingSystem.SapforTasksPackage;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Database.iDBObject;
import SapforTestingSystem.SapforConfiguration.SapforConfiguration;
import TestingSystem.Test.Test;
import Visual_DVM_2021.Passes.PassCode_2021;
import TestingSystem.TasksPackage.TasksPackageState;
import com.sun.org.glassfish.gmbal.Description;
import java.util.Vector;
public class SapforTasksPackage extends iDBObject {
public int sapforscenario_id = Constants.Nan;
@Description("DEFAULT ''")
public String sapforconfiguration_id = "";
//--
public String testsNames = "";//имена тестов через ; для отображения
//---
public String sapfor_version = "?"; //тестируемая версия SAPFOR
public long sapfor_build_date = 0;
//---
public String workspace = ""; //домашняя папка
//---
@Description("DEFAULT ''")
public String flags = "";
@Description("DEFAULT ''")
public String passesNames = "";
@Description("DEFAULT 0")
public int versions_tree_built = 0;
//--
@Description("IGNORE")
public Vector<Test> tests = null;
@Description("IGNORE")
public Vector<PassCode_2021> codes = null;
//--
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
SapforTasksPackage tasksPackage = (SapforTasksPackage) src;
flags = tasksPackage.flags;
passesNames = tasksPackage.passesNames;
}
public SapforTasksPackage(SapforTasksPackage src) {
this.SynchronizeFields(src);
}
public SapforTasksPackage() {
}
public SapforTasksPackage(SapforConfiguration configuration_in, Vector<Test> tests_in) {
}
@Override
public boolean isVisible() {
return Current.HasSapforScenario() && Current.getSapforScenario().id == sapforscenario_id;
}
public int tasksCount = 0; //Общее число задач
//---
public long StartDate = 0; //дата начала выполнения
public long ChangeDate = 0;//дата окончания выполнения
//-
public TasksPackageState state = TasksPackageState.Queued;
// допустимые состояния
//Queued
//PackageStart
//RunningExecution
//Done
//Aborted
}

View File

@@ -1,29 +1,37 @@
package SapforTestingSystem.SapforTasksPackage;
import Common.Current;
import Common.Database.*;
import Common.Database.iDBTable;
import Common.UI.DataSetControlForm;
import SapforTestingSystem.SapforTask.SapforTask;
import java.util.LinkedHashMap;
import java.util.Date;
import static Common.UI.Tables.TableRenderers.RendererDate;
import static Common.UI.Tables.TableRenderers.RendererStatusEnum;
public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
public SapforTasksPackagesDBTable() {
super(SapforTasksPackage.class);
}
@Override
public Current CurrentName() {
return Current.SapforTasksPackage;
return Current.SapforScenario;
}
@Override
public String getSingleDescription() {
return "пакеты задач Sapfor";
return "пакет задач Sapfor";
}
@Override
public String getPluralDescription() {
return "пакеты задач";
return "пакеты задач Sapfor";
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
protected void AdditionalInitColumns() {
columns.get(4).setRenderer(RendererDate);
columns.get(5).setRenderer(RendererDate);
columns.get(6).setRenderer(RendererStatusEnum);
}
@Override
public void ShowCurrentObject() throws Exception {
super.ShowCurrentObject();
@@ -39,25 +47,39 @@ public class SapforTasksPackagesDBTable extends iDBTable<SapforTasksPackage> {
@Override
public String[] getUIColumnNames() {
return new String[]{
"Проходы",
"Флаги"
"SAPFOR",
"Тесты",
"Задач",
"Начало",
"Изменено",
"Статус"
};
}
@Override
public Object getFieldAt(SapforTasksPackage object, int columnIndex) {
switch (columnIndex) {
case 1:
return object.passesNames;
return object.sapfor_version;
case 2:
return object.flags;
return object.testsNames;
case 3:
return object.tasksCount;
case 4:
return new Date(object.StartDate);
case 5:
return new Date(object.ChangeDate);
case 6:
return object.state;
default:
return null;
}
}
/*
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(SapforTask.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
res.put(SapforTasksPackage.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
return res;
}
*/
}

View File

@@ -1,10 +1,10 @@
package SapforTestingSystem.SapforScenarioSupervisor;
package SapforTestingSystem.SapforTasksPackageSupervisor;
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import SapforTestingSystem.Json.SapforConfiguration_json;
import SapforTestingSystem.Json.SapforScenarioResults_json;
import SapforTestingSystem.Json.PackageModeScenario_json;
import SapforTestingSystem.Json.SapforTasksResults_json;
import SapforTestingSystem.Json.SapforTasksPackage_json;
import SapforTestingSystem.PerformSapforTask;
import SapforTestingSystem.SapforTask.SapforTask;
import SapforTestingSystem.ThreadsPlanner.ThreadsPlanner;
@@ -12,17 +12,17 @@ import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.Date;
public class SapforScenarioSupervisor extends ThreadsPlanner {
PackageModeScenario_json scenario_json = null;
SapforScenarioResults_json results_json = new SapforScenarioResults_json();
public SapforScenarioSupervisor() throws Exception {
public class SapforTasksPackageSupervisor extends ThreadsPlanner {
SapforTasksPackage_json package_json = null;
SapforTasksResults_json results_json = new SapforTasksResults_json();
public SapforTasksPackageSupervisor() throws Exception {
super(Global.properties.threadsTimeout, Global.properties.threadsNum);
scenario_json = (PackageModeScenario_json) Utils.jsonFromFile(new File(Global.Home, "scenario"), PackageModeScenario_json.class);
package_json = (SapforTasksPackage_json) Utils.jsonFromFile(new File(Global.Home, "scenario"), SapforTasksPackage_json.class);
results_json.StartDate = new Date().getTime();
//формирование списка задач.
File sapfor_drv = new File(Global.Home, scenario_json.sapfor_drv);
for (SapforConfiguration_json sapforConfiguration_json : scenario_json.packages) {
for (String testName : scenario_json.tests) {
File sapfor_drv = new File(Global.Home, package_json.sapfor_drv);
for (SapforConfiguration_json sapforConfiguration_json : package_json.packages) {
for (String testName : package_json.tests) {
//--- чтобы было можно на нее сослаться после выполнения всех нитей.
SapforTask task = new SapforTask();
results_json.tasks.add(task);
@@ -39,12 +39,14 @@ public class SapforScenarioSupervisor extends ThreadsPlanner {
}
@Override
public void Interrupt() throws Exception {
System.out.println("killing " + scenario_json.sapfor_drv + "...");
String kill_command = Global.isWindows ? ("taskkill /FI \"IMAGENAME eq " + scenario_json.sapfor_drv + "\" /F /T") :
("killall -SIGKILL " + scenario_json.sapfor_drv);
/*
System.out.println("killing " + package_json.sapfor_drv + "...");
String kill_command = Global.isWindows ? ("taskkill /FI \"IMAGENAME eq " + package_json.sapfor_drv + "\" /F /T") :
("killall -SIGKILL " + package_json.sapfor_drv);
Process killer = Runtime.getRuntime().exec(kill_command);
killer.waitFor();
System.out.println("done!");
*/
//todo для надежности сделать еще один kill с внешнего процесса.
// может быть гонка, что нить успеет запустить процесс уже после интеррупта.
@@ -55,9 +57,7 @@ public class SapforScenarioSupervisor extends ThreadsPlanner {
//записать результаты всех задач.
try {
System.out.println("Запись результатов");
Utils.jsonToFile(results_json, new File(Global.Home, "results"));
// System.out.println("Очистка служебных файлов");
//тут же и строить версии.
Utils.deleteFilesByExtensions(new File(Global.Home),"proj","dep"); //Потом txt тоже добавить.
FileUtils.writeStringToFile(new File(Constants.DONE), "");

View File

@@ -1,6 +1,86 @@
package SapforTestingSystem.ServerSapforTestingPlanner;
import Common.Constants;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
import TestingSystem.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.TestingSystemPass;
import java.io.File;
import java.io.Serializable;
import java.util.Date;
public class ServerSapforTestingPlanner {
public void Perform(){
SapforTasksPackage sapforTasksPackage = null;
//---
int getSleepMillis() {
return 2000;
}
Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
TestingSystemPass<Object> pass = new TestingSystemPass<Object>() {
@Override
public String getDescription() {
return "";
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(code_in, arg, object_in));
target = response.object;
}
};
if (!pass.Do()) throw new PassException("Ошибка взаимодействия с сервером " + code_in);
return pass.target;
}
//---
void UpdatePackage(SapforTasksPackage package_in) throws Exception {
package_in.ChangeDate = new Date().getTime();
ServerCommand(ServerCode.EditObject, "", package_in);
}
void PackageStart() throws Exception {
File workspace = new File(sapforTasksPackage.workspace);
File script = new File(sapforTasksPackage.workspace, "start");
ProcessBuilder procBuilder = new ProcessBuilder(script.getAbsolutePath());
procBuilder.directory(workspace);
procBuilder.start();
sapforTasksPackage.state = TasksPackageState.RunningExecution;
UpdatePackage(sapforTasksPackage);
}
void CheckPackageState() throws Exception {
File done = new File(sapforTasksPackage.workspace, Constants.DONE);
File aborted = new File(sapforTasksPackage.workspace, Constants.ABORTED);
if (done.exists()) {
sapforTasksPackage.state = TasksPackageState.Done;
UpdatePackage(sapforTasksPackage);
} else if (aborted.exists()) {
sapforTasksPackage.state = TasksPackageState.Aborted;
UpdatePackage(sapforTasksPackage);
}
}
public void Perform() {
while (true) {
try {
//-
sapforTasksPackage = (SapforTasksPackage) ServerCommand(ServerCode.GetFirstActiveSapforTasksPackage, "", null);
switch (sapforTasksPackage.state) {
case PackageStart:
PackageStart();
break;
case RunningExecution:
CheckPackageState();
break;
default:
break;
}
//-
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
Utils.sleep(getSleepMillis());
} catch (Exception ignored) {
}
}
}
}
}