Перенос кнопки синхронизации на панель тестирования. Исправление бага с формированием пакета.

This commit is contained in:
2023-12-18 15:44:48 +03:00
parent ed2222c163
commit ef65bb2439
24 changed files with 315 additions and 79 deletions

1
.gitignore vendored
View File

@@ -40,6 +40,7 @@ Temp/*
Projects/* Projects/*
CompilationTasks/* CompilationTasks/*
Packages/* Packages/*
DVMPackages/*
SapforPackages/* SapforPackages/*
User/* User/*
RunTasks/* RunTasks/*

25
.idea/workspace.xml generated
View File

@@ -7,13 +7,28 @@
</component> </component>
<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 afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadSapforPackage.java" afterDir="false" />
<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/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPackage/TestingPackage.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/Common/UI/Menus_2023/TestingBar/TestingBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TestingBar/TestingBar.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/TestingSystem/Common/Group/GroupsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingPlanner.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/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="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" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackageDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTestingPlanner.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforTasksPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforTasksPackage_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/ActualizeTestingPackages.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/ActualizeTestingPackages.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddTasksToDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DeleteSapforPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadSapforPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/DeleteTestingPackages.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/DeleteTestingPackages.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -26,7 +26,7 @@
"PerformanceAnalyzerPath": "", "PerformanceAnalyzerPath": "",
"ComponentsBackUpsCount": 10, "ComponentsBackUpsCount": 10,
"TestingKernels": 28, "TestingKernels": 28,
"AutoCheckTesting": false, "AutoCheckTesting": true,
"CheckTestingIntervalSeconds": 10, "CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": false "EmailOnTestingProgress": false
} }

View File

@@ -41,7 +41,7 @@ public class Global {
public static final String Sts = "Sts"; public static final String Sts = "Sts";
public static final String Repo = "Repo"; public static final String Repo = "Repo";
public static final String Tests = "Tests"; public static final String Tests = "Tests";
public static final String Packages = "Packages"; public static final String DVMPackages = "DVMPackages";
public static final String PerformanceAnalyzer = "PerformanceAnalyzer"; public static final String PerformanceAnalyzer = "PerformanceAnalyzer";
public static GlobalProperties properties = new GlobalProperties(); public static GlobalProperties properties = new GlobalProperties();
//</editor-fold> //</editor-fold>
@@ -76,7 +76,7 @@ public class Global {
public static File TestsDirectory; public static File TestsDirectory;
public static File PerformanceAnalyzerDirectory; public static File PerformanceAnalyzerDirectory;
public static File DataBackUpsDirectory; public static File DataBackUpsDirectory;
public static File PackagesDirectory; public static File DVMPackagesDirectory;
public static File SapforsDirectory; public static File SapforsDirectory;
public static File SapforPackagesDirectory; public static File SapforPackagesDirectory;
//------------------------------------------------------------------ //------------------------------------------------------------------
@@ -117,7 +117,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(PackagesDirectory = Paths.get(Home, Packages).toFile()); Utils.CheckDirectory(DVMPackagesDirectory = Paths.get(Home, DVMPackages).toFile());
Utils.CheckAndCleanDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile()); Utils.CheckAndCleanDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile());
} }
public static void CheckServerDirectories() { public static void CheckServerDirectories() {
@@ -135,7 +135,7 @@ public class Global {
//- //-
Utils.CheckDirectory(TestsDirectory = Paths.get(Home, Tests).toFile()); Utils.CheckDirectory(TestsDirectory = Paths.get(Home, Tests).toFile());
Utils.CheckDirectory(RepoDirectory = Paths.get(Home, Repo).toFile()); Utils.CheckDirectory(RepoDirectory = Paths.get(Home, Repo).toFile());
Utils.CheckDirectory(PackagesDirectory = Paths.get(Home, Packages).toFile()); Utils.CheckDirectory(DVMPackagesDirectory = Paths.get(Home, DVMPackages).toFile());
Utils.CheckDirectory(SapforsDirectory = Paths.get(Home, "Sapfors").toFile()); Utils.CheckDirectory(SapforsDirectory = Paths.get(Home, "Sapfors").toFile());
Utils.CheckDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile()); Utils.CheckDirectory(SapforPackagesDirectory = Paths.get(Home, "SapforPackages").toFile());
} }
@@ -320,6 +320,7 @@ public class Global {
//--- //---
ActivateDB(); //тут current getAccount; роль по умолчанию всегда неизвестна. ActivateDB(); //тут current getAccount; роль по умолчанию всегда неизвестна.
///-------------- ///--------------
/*
Current.set(Current.Account, new Account(){ Current.set(Current.Account, new Account(){
{ {
name = "M"; name = "M";
@@ -327,7 +328,8 @@ public class Global {
role = AccountRole.Admin; role = AccountRole.Admin;
} }
}); });
// Pass_2021.passes.get(PassCode_2021.CheckAccount).Do(); */
Pass_2021.passes.get(PassCode_2021.CheckAccount).Do();
//--------------- //---------------
componentsServer.ActivateDB(); componentsServer.ActivateDB();
testingServer.ActivateDB(); testingServer.ActivateDB();

View File

@@ -7,6 +7,7 @@ import Common.UI.Themes.VisualiserFonts;
import Common.UI.UI; import Common.UI.UI;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@@ -22,7 +23,7 @@ public class TestingBar extends VisualiserMenuBar {
JSpinner sCheckTime; JSpinner sCheckTime;
JSpinner sKernels; JSpinner sKernels;
public TestingBar() { public TestingBar() {
// addPasses(PassCode_2021.SynchronizeTestsTasks); addPasses(PassCode_2021.SynchronizeTests);
//-- //--
// AddLabel("машина: ", "/icons/Machine.png"); // AddLabel("машина: ", "/icons/Machine.png");
add(MachineButton = new MenuBarButton() { add(MachineButton = new MenuBarButton() {

View File

@@ -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 = 1049; version = 1050;
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());

View File

@@ -9,7 +9,8 @@ import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*; import javax.swing.*;
public class GroupsMenuBar extends DataMenuBar { public class GroupsMenuBar extends DataMenuBar {
public GroupsMenuBar() { public GroupsMenuBar() {
super("группы", PassCode_2021.SynchronizeTests, PassCode_2021.ConvertCorrectnessTests, super("группы",
PassCode_2021.ConvertCorrectnessTests,
PassCode_2021.PublishGroup, PassCode_2021.PublishGroup,
PassCode_2021.CreateGroupFromDirectory, PassCode_2021.CreateGroupFromDirectory,
PassCode_2021.CreateGroupFromFiles, PassCode_2021.CreateGroupFromFiles,

View File

@@ -1,4 +1,5 @@
package TestingSystem.Common; package TestingSystem.Common;
import Common.Constants;
import Common.Utils.Utils; import Common.Utils.Utils;
import Repository.EmailMessage; import Repository.EmailMessage;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
@@ -135,14 +136,15 @@ public abstract class TestingPlanner<P extends TestingPackage> {
} else { } else {
try { try {
if (Connect()) { if (Connect()) {
if ((boolean) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id)) { int ptk_id = (int) ServerCommand(getCheckIfNeedsKillCode(), testingPackage.id);
if (ptk_id!= Constants.Nan) {
Print("package " + testingPackage.id + " NEEDS TO KILL"); Print("package " + testingPackage.id + " NEEDS TO KILL");
Kill(); Kill();
UpdatePackageState(TasksPackageState.Aborted); UpdatePackageState(TasksPackageState.Aborted);
EmailPackage(); EmailPackage();
ServerCommand(ServerCode.DeleteObjectByPK, ptk_id);
} else { } else {
Session(); Session();
} }
} }
} catch (Exception ex) { } catch (Exception ex) {

View File

@@ -408,27 +408,25 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
} }
private void DVMPackageNeedsKill() { private void DVMPackageNeedsKill() {
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = Constants.Nan;
int packageId = (int) request.object; int packageId = (int) request.object;
boolean res_ = false;
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) { for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
if ((packageToKill.packageId == packageId) && (packageToKill.type == 0)) { if ((packageToKill.packageId == packageId) && (packageToKill.type == 0)) {
res_ = true; response.object = packageToKill.id;
break; break;
} }
} }
response.object = res_;
} }
private void SapforPackageNeedsKill() throws Exception { private void SapforPackageNeedsKill() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = Constants.Nan;
int packageId = (int) request.object; int packageId = (int) request.object;
boolean res_ = false;
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) { for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
if ((packageToKill.packageId == packageId) && (packageToKill.type == 1)) { if ((packageToKill.packageId == packageId) && (packageToKill.type == 1)) {
res_ = true; response.object = packageToKill.id;
break; break;
} }
} }
response.object = res_;
} }
private void DownloadDVMPackage() throws Exception { private void DownloadDVMPackage() throws Exception {
int dvmPackage_id = (int) request.object; int dvmPackage_id = (int) request.object;
@@ -468,6 +466,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
zipFolderPass.Do(workspace.getAbsolutePath(), results_zip.getAbsolutePath()); zipFolderPass.Do(workspace.getAbsolutePath(), results_zip.getAbsolutePath());
if (results_zip.exists()) if (results_zip.exists())
response.object = Utils.packFile(results_zip); response.object = Utils.packFile(results_zip);
else throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом "+ sapforPackage_id); else
throw new RepositoryRefuseException("Не удалось заархивировать пакет тестирования SAPFOR с ключом " + sapforPackage_id);
} }
} }

View File

@@ -25,7 +25,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
} }
@Override @Override
public File getHomeDirectory() { public File getHomeDirectory() {
return Global.PackagesDirectory; return Global.DVMPackagesDirectory;
} }
public DVMPackage(DVMPackage p) { public DVMPackage(DVMPackage p) {
super(p); super(p);

View File

@@ -41,7 +41,7 @@ public class DVMPackageDBTable extends iDBTable<DVMPackage> {
@Override @Override
public void ShowCurrentObject() throws Exception { public void ShowCurrentObject() throws Exception {
super.ShowCurrentObject(); super.ShowCurrentObject();
Global.testingServer.db.dvmRunTasks.ShowNoPackage(); Global.testingServer.db.dvmRunTasks.ShowDVMPackage(getCurrent());
UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison(); UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison();
} }
@Override @Override

View File

@@ -116,7 +116,7 @@ public class DVMRunTask extends DVMTask {
} }
public File getCompilationTaskWorkspace() { public File getCompilationTaskWorkspace() {
return Paths.get( return Paths.get(
Global.PackagesDirectory.getAbsolutePath(), Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id), String.valueOf(dvm_package_id),
"results", "results",
String.valueOf(dvmcompilationtask_id) String.valueOf(dvmcompilationtask_id)

View File

@@ -212,9 +212,6 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
public void ShowNoPackage() { public void ShowNoPackage() {
ClearUI(); ClearUI();
Data.clear(); Data.clear();
if (target != null) {
target.destructor();
target = null; target = null;
} }
} }
}

View File

@@ -75,7 +75,7 @@ public class DVMTask extends iDBObject {
} }
public File getLocalWorkspace() { public File getLocalWorkspace() {
return return
Paths.get(Global.PackagesDirectory.getAbsolutePath(), Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id), String.valueOf(dvm_package_id),
"results", "results",
String.valueOf(id)).toFile(); String.valueOf(id)).toFile();

View File

@@ -284,9 +284,11 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
} }
//todo привязать это к настройкам, чтобы можно было включать/выключать удаление. //todo привязать это к настройкам, чтобы можно было включать/выключать удаление.
//получили результат. теперь уничтожаем папку пакета на целевой машине. //получили результат. теперь уничтожаем папку пакета на целевой машине.
/*
if ( user.connection.Exists(packageRemoteWorkspace)){ if ( user.connection.Exists(packageRemoteWorkspace)){
user.connection.RMDIR(packageRemoteWorkspace.full_name); user.connection.RMDIR(packageRemoteWorkspace.full_name);
} }
*/
} }
@Override @Override
protected void AnalyseResults() throws Exception { protected void AnalyseResults() throws Exception {
@@ -372,7 +374,7 @@ public class DVMTestingPlanner extends TestingPlanner<DVMPackage> {
user = users.get(testingPackage.user_name); user = users.get(testingPackage.user_name);
//-- //--
packageRemoteWorkspace = new RemoteFile(user.workspace + "/tests", String.valueOf(testingPackage.id), true); packageRemoteWorkspace = new RemoteFile(user.workspace + "/tests", String.valueOf(testingPackage.id), true);
packageLocalWorkspace = new File(Global.PackagesDirectory, String.valueOf(testingPackage.id)); packageLocalWorkspace = new File(Global.DVMPackagesDirectory, String.valueOf(testingPackage.id));
} }
@Override @Override
protected boolean Connect() { protected boolean Connect() {

View File

@@ -1,9 +1,16 @@
package TestingSystem.SAPFOR.Json; package TestingSystem.SAPFOR.Json;
import GlobalData.Tasks.TaskState;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import TestingSystem.SAPFOR.SapforTask.MatchState;
import TestingSystem.SAPFOR.SapforTask.SapforTask; import TestingSystem.SAPFOR.SapforTask.SapforTask;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageSummary; import TestingSystem.SAPFOR.SapforTasksPackage.UI.*;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.io.Serializable; import java.io.Serializable;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
public class SapforTasksPackage_json implements Serializable { public class SapforTasksPackage_json implements Serializable {
@@ -18,4 +25,194 @@ public class SapforTasksPackage_json implements Serializable {
//--- //---
@Expose @Expose
public List<SapforTask> tasks = new Vector<>(); public List<SapforTask> tasks = new Vector<>();
//-
public PackageSummary root = null;
public PackageSummary comparison_root = null;
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
//----
//---------
public void DropComparison() {
comparison_root = null;
comparisonSortedTasks.clear();
for (SapforTask task : allTasks.values())
task.match = MatchState.NotMatch;
}
public void SortTasks() {
sortedTasks.clear();
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
sortedTasks.put(state, configuration_tasks);
//--
for (SapforTask task : tasks) {
if (task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else {
groups_tasks = new LinkedHashMap<>();
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
Vector<SapforTask> tasks_ = null;
if (groups_tasks.containsKey(task.group_description)) {
tasks_ = groups_tasks.get(task.group_description);
} else {
tasks_ = new Vector<>();
groups_tasks.put(task.group_description, tasks_);
}
tasks_.add(task);
}
}
//--
}
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = sortedTasks.get(state);
for (int configuration_id : configuration_tasks.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
for (String group : groups_tasks.keySet()) {
Vector<SapforTask> tasks_ = groups_tasks.get(group);
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
}
}
}
}
public void SortTasksForComparison() {
comparisonSortedTasks.clear();
//раскидать задачи по состояниям, конфигам, группам
for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
comparisonSortedTasks.put(matchState, state_tasks);
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
state_tasks.put(state, configuration_tasks);
//--
for (SapforTask task : tasks) {
if (task.match.equals(matchState) && task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else {
groups_tasks = new LinkedHashMap<>();
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
Vector<SapforTask> tasks = null;
if (groups_tasks.containsKey(task.group_description)) {
tasks = groups_tasks.get(task.group_description);
} else {
tasks = new Vector<>();
groups_tasks.put(task.group_description, tasks);
}
tasks.add(task);
}
}
}
//--
}
//рассортировать задачи в группах по ключам.
for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = comparisonSortedTasks.get(matchState);
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = state_tasks.get(state);
for (int configuration_id : configuration_tasks.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
for (String group : groups_tasks.keySet()) {
Vector<SapforTask> tasks_ = groups_tasks.get(group);
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
}
}
}
}
}
public void buildTree(SapforPackage package_in) {
root = new PackageSummary();
//---
for (TaskState state : sortedTasks.keySet()) {
//--
StateSummary stateSummary = new StateSummary(state);
//--
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
for (int configuration_id : tasksByConfigurations.keySet()) {
//--
DefaultMutableTreeNode configurationNode = null;
//--
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = tasksByConfigurations.get(configuration_id);
for (String group : groups_tasks.keySet()) {
//--
GroupSummary groupSummary = new GroupSummary(group);
//--
for (SapforTask task : groups_tasks.get(group)) {
//--
stateSummary.count++;
root.count++;
//--
if (configurationNode == null) {
configurationNode = new ConfigurationSummary(configuration_id, task);
}
//--
groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), String.valueOf(configuration_id))));
}
if (configurationNode != null)
configurationNode.add(groupSummary);
}
stateSummary.add(configurationNode);
}
if (stateSummary.count > 0) {
root.add(stateSummary);
}
}
}
public void buildComparisonTree(SapforPackage package_in) {
comparison_root = new PackageSummary();
for (MatchState match_state : comparisonSortedTasks.keySet()) {
//--
MatchesSummary matchesSummary = new MatchesSummary(match_state);
//---
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> task_states = comparisonSortedTasks.get(match_state);
//---
for (TaskState state : task_states.keySet()) {
//--
StateSummary stateSummary = new StateSummary(state);
//--
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = task_states.get(state);
for (int configuration_id : tasksByConfigurations.keySet()) {
//--
DefaultMutableTreeNode configurationNode = null;
//--
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = tasksByConfigurations.get(configuration_id);
for (String group : groups_tasks.keySet()) {
//--
GroupSummary groupSummary = new GroupSummary(group);
//--
for (SapforTask task : groups_tasks.get(group)) {
//--
stateSummary.count++;
matchesSummary.count++;
comparison_root.count++;
//--
if (configurationNode == null) {
configurationNode = new ConfigurationSummary(configuration_id, task);
}
//--
groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), String.valueOf(configuration_id))));
}
if (configurationNode != null)
configurationNode.add(groupSummary);
}
stateSummary.add(configurationNode);
}
if (stateSummary.count > 0) {
matchesSummary.add(stateSummary);
}
}
//---
if (matchesSummary.count > 0) {
comparison_root.add(matchesSummary);
}
}
}
} }

View File

@@ -24,16 +24,11 @@ public abstract class ActualizeTestingPackages<P extends TestingPackage> extends
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
target = new Vector<>(); target = new Vector<>();
System.out.println("active packages");
for (P testingPackage : getTable().Data.values()) { for (P testingPackage : getTable().Data.values()) {
System.out.println(testingPackage.id + " " + testingPackage.state);
if (testingPackage.state.isActive()) { if (testingPackage.state.isActive()) {
System.out.println(testingPackage.state);
target.add(new Pair(testingPackage.id, testingPackage.ChangeDate)); target.add(new Pair(testingPackage.id, testingPackage.ChangeDate));
System.out.println(testingPackage.id);
} }
} }
System.out.println("found " + target.size());
return !target.isEmpty(); return !target.isEmpty();
} }
@Override @Override

View File

@@ -75,4 +75,9 @@ public class AddDVMPackage extends AddObjectPass<DVMPackage> {
//черновик не вставляется в бд. идет только как элемент списка. //черновик не вставляется в бд. идет только как элемент списка.
Global.testingServer.db.dvmPackages.Data.put(target.id, target); Global.testingServer.db.dvmPackages.Data.put(target.id, target);
} }
@Override
protected void showDone() throws Exception {
super.showDone();
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
}
} }

View File

@@ -170,5 +170,6 @@ public class AddTasksToDVMPackage extends Pass_2021<DVMPackage> {
@Override @Override
protected void showDone() throws Exception { protected void showDone() throws Exception {
Global.testingServer.db.dvmPackages.ShowUI(target.id); Global.testingServer.db.dvmPackages.ShowUI(target.id);
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
} }
} }

View File

@@ -1,7 +1,6 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Global; import Common.Global;
import Common.UI.UI; import Common.UI.UI;
import Common.Utils.Utils;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import Visual_DVM_2021.Passes.DeleteTestingPackages; import Visual_DVM_2021.Passes.DeleteTestingPackages;
@@ -15,13 +14,8 @@ public class DeleteDVMPackage extends DeleteTestingPackages<DVMPackage> {
UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison(); UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison();
} }
@Override @Override
protected void performDone() throws Exception { protected File getPackagesHome() {
super.performDone(); return Global.DVMPackagesDirectory;
for (Object object : target) {
int id = (int) object;
File workspace = new File(Global.PackagesDirectory, String.valueOf(id));
Utils.forceDeleteWithCheck(workspace);
}
} }
} }

View File

@@ -1,8 +1,16 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Global;
import Common.Utils.Utils;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import Visual_DVM_2021.Passes.DeleteTestingPackages; import Visual_DVM_2021.Passes.DeleteTestingPackages;
import java.io.File;
public class DeleteSapforPackage extends DeleteTestingPackages<SapforPackage> { public class DeleteSapforPackage extends DeleteTestingPackages<SapforPackage> {
public DeleteSapforPackage() { public DeleteSapforPackage() {
super(SapforPackage.class); super(SapforPackage.class);
} }
@Override
protected File getPackagesHome() {
return Global.SapforPackagesDirectory;
}
} }

View File

@@ -48,6 +48,7 @@ public class DownloadSapforPackage extends Pass_2021<SapforPackage> {
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
File workspace = target.getLocalWorkspace(); File workspace = target.getLocalWorkspace();
Utils.forceDeleteWithCheck(workspace);
File archive = Utils.getTempFileName(String.valueOf(target.id)); File archive = Utils.getTempFileName(String.valueOf(target.id));
Utils.unpackFile(packed,archive); Utils.unpackFile(packed,archive);
passes.get(PassCode_2021.UnzipFolderPass).Do(archive.getAbsolutePath(), Global.SapforPackagesDirectory.getAbsolutePath()); passes.get(PassCode_2021.UnzipFolderPass).Do(archive.getAbsolutePath(), Global.SapforPackagesDirectory.getAbsolutePath());

View File

@@ -1,12 +1,13 @@
package Visual_DVM_2021.Passes; package Visual_DVM_2021.Passes;
import Common.Constants; import Common.Constants;
import Common.Global; import Common.Global;
import Common.Utils.Utils;
import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import java.io.File; import java.io.File;
import java.util.Vector; import java.util.Vector;
public class DeleteTestingPackages<P extends TestingPackage> extends DeleteServerObjects<TestingServer, P>{ public abstract class DeleteTestingPackages<P extends TestingPackage> extends DeleteServerObjects<TestingServer, P>{
boolean delete_draft; boolean delete_draft;
public DeleteTestingPackages(Class<P> p) { public DeleteTestingPackages(Class<P> p) {
super(Global.testingServer, p); super(Global.testingServer, p);
@@ -25,6 +26,7 @@ public class DeleteTestingPackages<P extends TestingPackage> extends DeleteServe
*/ */
return true; return true;
} }
protected abstract File getPackagesHome();
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
delete_draft = false; delete_draft = false;
@@ -57,5 +59,13 @@ public class DeleteTestingPackages<P extends TestingPackage> extends DeleteServe
getDb().tables.get(d).Data.remove(Constants.Nan); getDb().tables.get(d).Data.remove(Constants.Nan);
getDb().tables.get(d).ShowUI(); getDb().tables.get(d).ShowUI();
} }
@Override
protected void performDone() throws Exception {
super.performDone();
for (Object object : target) {
int id = (int) object;
File workspace = new File(getPackagesHome(), String.valueOf(id));
Utils.forceDeleteWithCheck(workspace);
}
}
} }

View File

@@ -11,6 +11,7 @@ import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021; import Visual_DVM_2021.Passes.Pass_2021;
import javax.swing.*; import javax.swing.*;
import java.util.Comparator;
public class SapforPackagesComparisonForm { public class SapforPackagesComparisonForm {
public boolean comparisonMode = false; public boolean comparisonMode = false;
//-->> //-->>
@@ -62,7 +63,6 @@ public class SapforPackagesComparisonForm {
} }
} }
public void ApplyObject() { public void ApplyObject() {
//---Загрузка //---Загрузка
RemoveObject(); RemoveObject();
//--- //---
@@ -70,7 +70,7 @@ public class SapforPackagesComparisonForm {
if (Current.Check(log, Current.SapforPackage)) { if (Current.Check(log, Current.SapforPackage)) {
object = Current.getSapforPackage(); object = Current.getSapforPackage();
if (object.isLoaded() || (Pass_2021.passes.get(PassCode_2021.DownloadSapforPackage).Do(object))) { if (object.isLoaded() || (Pass_2021.passes.get(PassCode_2021.DownloadSapforPackage).Do(object))) {
// showObject(); showObject();
} }
} else } else
UI.Info(log.toString()); UI.Info(log.toString());
@@ -89,41 +89,47 @@ public class SapforPackagesComparisonForm {
} }
//--- //---
public void showCommonTree() { public void showCommonTree() {
/*
//--- //---
treePanel.add(treeScroll = new JScrollPane( treePanel.add(treeScroll = new JScrollPane(
Body = new SapforTasksPackageTree(object.results.root, Body = new SapforTasksPackageTree(object.package_json.root,
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
))); )));
treePanel.repaint(); treePanel.repaint();
treePanel.revalidate(); treePanel.revalidate();
*/
} }
public void showComparisonTree() { public void showComparisonTree() {
/*
treePanel.add(treeScroll = new JScrollPane( treePanel.add(treeScroll = new JScrollPane(
Body = new SapforTasksPackageTree(object.results.comparison_root, Body = new SapforTasksPackageTree(object.package_json.comparison_root,
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
))); )));
treePanel.repaint(); treePanel.repaint();
treePanel.revalidate(); treePanel.revalidate();
*/
} }
//--- //---
public void showNoTree() { public void showNoTree() {
UI.Clear(treePanel); UI.Clear(treePanel);
} }
public void showObject() { public void showObject() {
/*
lObjectName.setText(object.getPK().toString() + (isMaster() ? "(эталон)" : "")); lObjectName.setText(object.getPK().toString() + (isMaster() ? "(эталон)" : ""));
lObjectName.setToolTipText(object.getPK().toString()); lObjectName.setToolTipText(object.getPK().toString());
//-- //--
if (object.results == null) if (object.package_json == null) {
object.readResults(); try {
object.readJson();
object.package_json.tasks.sort(Comparator.comparing(SapforTask::getUniqueKey));
for (SapforTask task : object.package_json.tasks)
object.package_json.allTasks.put(task.getUniqueKey(), task);
//---
object.package_json.SortTasks(); //по состояниям конфигурациям и группам
//---
object.package_json.buildTree(object);
//---
} catch (Exception ex) {
ex.printStackTrace();
}
}
//-- //--
showCommonTree(); showCommonTree();
*/
} }
protected String getText() { protected String getText() {
return ""; return "";
@@ -200,13 +206,12 @@ public class SapforPackagesComparisonForm {
Log.Writeln_("Наборы конфигураций не совпадают!"); Log.Writeln_("Наборы конфигураций не совпадают!");
return false; return false;
} }
/*
for (String key1 : package1.results.allTasks.keySet()) { for (String key1 : package1.package_json.allTasks.keySet()) {
if (!package2.results.allTasks.containsKey(key1)) { if (!package2.package_json.allTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!"); Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
} }
} }
*/
return Log.isEmpty(); return Log.isEmpty();
} }
return false; return false;
@@ -219,8 +224,8 @@ public class SapforPackagesComparisonForm {
treeScroll = null; treeScroll = null;
slave.treeScroll = null; slave.treeScroll = null;
//-- //--
// package1.results.DropComparison(); package1.package_json.DropComparison();
// package2.results.DropComparison(); package2.package_json.DropComparison();
} }
@Override @Override
protected void showPreparation() throws Exception { protected void showPreparation() throws Exception {
@@ -232,27 +237,27 @@ public class SapforPackagesComparisonForm {
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
/*
System.out.println(package1.results.allTasks.size()); System.out.println(package1.package_json.allTasks.size());
System.out.println(package2.results.allTasks.size()); System.out.println(package2.package_json.allTasks.size());
//теперь сравниваем задачи //теперь сравниваем задачи
int i = 1; int i = 1;
for (String key1 : package1.results.allTasks.keySet()) { for (String key1 : package1.package_json.allTasks.keySet()) {
System.out.println(i + "=" + key1); System.out.println(i + "=" + key1);
SapforTask task1 = package1.results.allTasks.get(key1); SapforTask task1 = package1.package_json.allTasks.get(key1);
SapforTask task2 = package2.results.allTasks.get(key1); SapforTask task2 = package2.package_json.allTasks.get(key1);
//-- //--
task1.checkMatch(task2); task1.checkMatch(task2);
//-- //--
++i; ++i;
} }
//-- //--
package1.results.SortTasksForComparison(); package1.package_json.SortTasksForComparison();
package2.results.SortTasksForComparison(); package2.package_json.SortTasksForComparison();
//- //-
package1.results.buildComparisonTree(package1); package1.package_json.buildComparisonTree(package1);
package2.results.buildComparisonTree(package2); package2.package_json.buildComparisonTree(package2);
*/
} }
@Override @Override
protected boolean validate() { protected boolean validate() {