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

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/*
CompilationTasks/*
Packages/*
DVMPackages/*
SapforPackages/*
User/*
RunTasks/*

25
.idea/workspace.xml generated
View File

@@ -7,13 +7,28 @@
</component>
<component name="ChangeListManager">
<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$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" 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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" 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/SAPFOR/SapforPackage/SapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforPackage/SapforPackage.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/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage.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" />
</list>
<option name="SHOW_DIALOG" value="false" />

View File

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

View File

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

View File

@@ -7,6 +7,7 @@ import Common.UI.Themes.VisualiserFonts;
import Common.UI.UI;
import Common.Utils.Utils;
import TestingSystem.Common.TestingServer;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
import java.awt.*;
@@ -22,7 +23,7 @@ public class TestingBar extends VisualiserMenuBar {
JSpinner sCheckTime;
JSpinner sKernels;
public TestingBar() {
// addPasses(PassCode_2021.SynchronizeTestsTasks);
addPasses(PassCode_2021.SynchronizeTests);
//--
// AddLabel("машина: ", "/icons/Machine.png");
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
@Override
public void GetVersionInfo() {
version = 1049;
version = 1050;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

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

View File

@@ -1,4 +1,5 @@
package TestingSystem.Common;
import Common.Constants;
import Common.Utils.Utils;
import Repository.EmailMessage;
import Repository.Server.ServerCode;
@@ -135,14 +136,15 @@ public abstract class TestingPlanner<P extends TestingPackage> {
} else {
try {
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");
Kill();
UpdatePackageState(TasksPackageState.Aborted);
EmailPackage();
ServerCommand(ServerCode.DeleteObjectByPK, ptk_id);
} else {
Session();
}
}
} catch (Exception ex) {

View File

@@ -408,27 +408,25 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
private void DVMPackageNeedsKill() {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = Constants.Nan;
int packageId = (int) request.object;
boolean res_ = false;
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
if ((packageToKill.packageId == packageId) && (packageToKill.type == 0)) {
res_ = true;
response.object = packageToKill.id;
break;
}
}
response.object = res_;
}
private void SapforPackageNeedsKill() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = Constants.Nan;
int packageId = (int) request.object;
boolean res_ = false;
for (TestingPackageToKill packageToKill : db.testingPackagesToKill.Data.values()) {
if ((packageToKill.packageId == packageId) && (packageToKill.type == 1)) {
res_ = true;
response.object = packageToKill.id;
break;
}
}
response.object = res_;
}
private void DownloadDVMPackage() throws Exception {
int dvmPackage_id = (int) request.object;
@@ -468,6 +466,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
zipFolderPass.Do(workspace.getAbsolutePath(), results_zip.getAbsolutePath());
if (results_zip.exists())
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
public File getHomeDirectory() {
return Global.PackagesDirectory;
return Global.DVMPackagesDirectory;
}
public DVMPackage(DVMPackage p) {
super(p);

View File

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

View File

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

View File

@@ -212,9 +212,6 @@ public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
public void ShowNoPackage() {
ClearUI();
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() {
return
Paths.get(Global.PackagesDirectory.getAbsolutePath(),
Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id),
"results",
String.valueOf(id)).toFile();

View File

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

View File

@@ -1,9 +1,16 @@
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.SapforTasksPackage.UI.PackageSummary;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.*;
import com.google.gson.annotations.Expose;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.io.Serializable;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Vector;
public class SapforTasksPackage_json implements Serializable {
@@ -18,4 +25,194 @@ public class SapforTasksPackage_json implements Serializable {
//---
@Expose
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
protected boolean canStart(Object... args) throws Exception {
target = new Vector<>();
System.out.println("active packages");
for (P testingPackage : getTable().Data.values()) {
System.out.println(testingPackage.id + " " + testingPackage.state);
if (testingPackage.state.isActive()) {
System.out.println(testingPackage.state);
target.add(new Pair(testingPackage.id, testingPackage.ChangeDate));
System.out.println(testingPackage.id);
}
}
System.out.println("found " + target.size());
return !target.isEmpty();
}
@Override

View File

@@ -75,4 +75,9 @@ public class AddDVMPackage extends AddObjectPass<DVMPackage> {
//черновик не вставляется в бд. идет только как элемент списка.
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
protected void showDone() throws Exception {
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;
import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import Visual_DVM_2021.Passes.DeleteTestingPackages;
@@ -15,13 +14,8 @@ public class DeleteDVMPackage extends DeleteTestingPackages<DVMPackage> {
UI.getMainWindow().getTestingWindow().DropTestRunTasksComparison();
}
@Override
protected void performDone() throws Exception {
super.performDone();
for (Object object : target) {
int id = (int) object;
File workspace = new File(Global.PackagesDirectory, String.valueOf(id));
Utils.forceDeleteWithCheck(workspace);
}
protected File getPackagesHome() {
return Global.DVMPackagesDirectory;
}
}

View File

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

View File

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

View File

@@ -1,12 +1,13 @@
package Visual_DVM_2021.Passes;
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.Common.TestingServer;
import java.io.File;
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;
public DeleteTestingPackages(Class<P> p) {
super(Global.testingServer, p);
@@ -25,6 +26,7 @@ public class DeleteTestingPackages<P extends TestingPackage> extends DeleteServe
*/
return true;
}
protected abstract File getPackagesHome();
@Override
protected boolean canStart(Object... args) throws Exception {
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).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 javax.swing.*;
import java.util.Comparator;
public class SapforPackagesComparisonForm {
public boolean comparisonMode = false;
//-->>
@@ -62,7 +63,6 @@ public class SapforPackagesComparisonForm {
}
}
public void ApplyObject() {
//---Загрузка
RemoveObject();
//---
@@ -70,7 +70,7 @@ public class SapforPackagesComparisonForm {
if (Current.Check(log, Current.SapforPackage)) {
object = Current.getSapforPackage();
if (object.isLoaded() || (Pass_2021.passes.get(PassCode_2021.DownloadSapforPackage).Do(object))) {
// showObject();
showObject();
}
} else
UI.Info(log.toString());
@@ -89,41 +89,47 @@ public class SapforPackagesComparisonForm {
}
//---
public void showCommonTree() {
/*
//---
treePanel.add(treeScroll = new JScrollPane(
Body = new SapforTasksPackageTree(object.results.root,
Body = new SapforTasksPackageTree(object.package_json.root,
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
)));
treePanel.repaint();
treePanel.revalidate();
*/
}
public void showComparisonTree() {
/*
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
)));
treePanel.repaint();
treePanel.revalidate();
*/
}
//---
public void showNoTree() {
UI.Clear(treePanel);
}
public void showObject() {
/*
lObjectName.setText(object.getPK().toString() + (isMaster() ? "(эталон)" : ""));
lObjectName.setToolTipText(object.getPK().toString());
//--
if (object.results == null)
object.readResults();
if (object.package_json == null) {
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();
*/
}
protected String getText() {
return "";
@@ -200,13 +206,12 @@ public class SapforPackagesComparisonForm {
Log.Writeln_("Наборы конфигураций не совпадают!");
return false;
}
/*
for (String key1 : package1.results.allTasks.keySet()) {
if (!package2.results.allTasks.containsKey(key1)) {
for (String key1 : package1.package_json.allTasks.keySet()) {
if (!package2.package_json.allTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
}
}
*/
return Log.isEmpty();
}
return false;
@@ -219,8 +224,8 @@ public class SapforPackagesComparisonForm {
treeScroll = null;
slave.treeScroll = null;
//--
// package1.results.DropComparison();
// package2.results.DropComparison();
package1.package_json.DropComparison();
package2.package_json.DropComparison();
}
@Override
protected void showPreparation() throws Exception {
@@ -232,27 +237,27 @@ public class SapforPackagesComparisonForm {
}
@Override
protected void body() throws Exception {
/*
System.out.println(package1.results.allTasks.size());
System.out.println(package2.results.allTasks.size());
System.out.println(package1.package_json.allTasks.size());
System.out.println(package2.package_json.allTasks.size());
//теперь сравниваем задачи
int i = 1;
for (String key1 : package1.results.allTasks.keySet()) {
for (String key1 : package1.package_json.allTasks.keySet()) {
System.out.println(i + "=" + key1);
SapforTask task1 = package1.results.allTasks.get(key1);
SapforTask task2 = package2.results.allTasks.get(key1);
SapforTask task1 = package1.package_json.allTasks.get(key1);
SapforTask task2 = package2.package_json.allTasks.get(key1);
//--
task1.checkMatch(task2);
//--
++i;
}
//--
package1.results.SortTasksForComparison();
package2.results.SortTasksForComparison();
package1.package_json.SortTasksForComparison();
package2.package_json.SortTasksForComparison();
//-
package1.results.buildComparisonTree(package1);
package2.results.buildComparisonTree(package2);
*/
package1.package_json.buildComparisonTree(package1);
package2.package_json.buildComparisonTree(package2);
}
@Override
protected boolean validate() {
@@ -279,7 +284,7 @@ public class SapforPackagesComparisonForm {
pass.Do();
}
public void SynchronizeTrees() {
if (slave.Body!=null) {
if (slave.Body != null) {
Body.setSlaveTree(slave.Body);
slave.treeScroll.getVerticalScrollBar().setModel(treeScroll.getVerticalScrollBar().getModel());
}