Обощение массовой загрузки пакетов с сервера.

This commit is contained in:
2023-12-17 19:19:59 +03:00
parent d9fca1fa72
commit eefbc25be0
18 changed files with 116 additions and 77 deletions

19
.idea/workspace.xml generated
View File

@@ -7,7 +7,24 @@
</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 beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadDVMPackages.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$/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/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackage_json.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/DVM/TasksPackage/TasksPackageState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TasksPackageState.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTestingPlanner.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/AddSapforPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/AddSapforPackage.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/DownloadDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/DownloadDVMPackage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.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/Visual_DVM_2021/Passes/StartTestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/StartTestingPackage.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,4 +1,5 @@
package Repository.Server; package Repository.Server;
import Visual_DVM_2021.Passes.All.DownloadDVMPackages;
public enum ServerCode { public enum ServerCode {
Undefined, Undefined,
ReadFile, ReadFile,
@@ -74,5 +75,6 @@ public enum ServerCode {
GetFirstActiveSapforPackage, GetFirstActiveSapforPackage,
SapforPackageNeedsKill, SapforPackageNeedsKill,
UpdateActiveSapforPackages, UpdateActiveSapforPackages,
DownloadDVMPackage; DownloadDVMPackage,
DownloadDVMPackages;
} }

View File

@@ -1,4 +1,4 @@
package TestingSystem.DVM.TasksPackage; package TestingSystem.Common;
import Common.Current; import Common.Current;
import Common.UI.StatusEnum; import Common.UI.StatusEnum;
import Common.UI.Themes.VisualiserFonts; import Common.UI.Themes.VisualiserFonts;

View File

@@ -3,7 +3,7 @@ import Common.Constants;
import Common.Database.DBObject; import Common.Database.DBObject;
import Common.Database.riDBObject; import Common.Database.riDBObject;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import com.sun.org.glassfish.gmbal.Description; import com.sun.org.glassfish.gmbal.Description;
import java.io.File; import java.io.File;

View File

@@ -4,7 +4,6 @@ import Repository.EmailMessage;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021; import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassException; import Visual_DVM_2021.Passes.PassException;
import Visual_DVM_2021.Passes.Server.TestingSystemPass; import Visual_DVM_2021.Passes.Server.TestingSystemPass;

View File

@@ -219,6 +219,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Загрузить пакет DVM"); Print("Загрузить пакет DVM");
DownloadDVMPackage(); DownloadDVMPackage();
break; break;
case DownloadDVMPackages:
Print("Загрузить пакеты DVM");
DownloadDVMPackages();
break;
default: default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code); throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
} }
@@ -433,4 +437,19 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
File package_json = dvmPackage.getJsonFile(); File package_json = dvmPackage.getJsonFile();
response.object = new Pair(Utils.packFile(results_zip), Utils.packFile(package_json)); response.object = new Pair(Utils.packFile(results_zip), Utils.packFile(package_json));
} }
private void DownloadDVMPackages() throws Exception {
Vector<Integer> ids = (Vector<Integer>) request.object;
Vector<Pair<Integer, Pair<byte[], byte[]>>> res = new Vector<>();
for (int dvmPackage_id : ids) {
if (!db.dvmPackages.containsKey(dvmPackage_id))
throw new RepositoryRefuseException("Не найдено пакета тестирования DVM с ключом " + dvmPackage_id);
DVMPackage dvmPackage = db.dvmPackages.get(dvmPackage_id);
File workspace = dvmPackage.getLocalWorkspace();
File results_zip = new File(workspace, "results.zip");
File package_json = dvmPackage.getJsonFile();
res.add(new Pair<>(dvmPackage_id, new Pair(Utils.packFile(results_zip), Utils.packFile(package_json))));
}
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = res;
}
} }

View File

@@ -1,7 +1,6 @@
package TestingSystem.Common; package TestingSystem.Common;
import Common.Constants; import Common.Constants;
import Common.Database.SQLITE.SQLiteDatabase; import Common.Database.SQLITE.SQLiteDatabase;
import GlobalData.Settings.SettingName;
import TestingSystem.Common.Group.GroupsDBTable; import TestingSystem.Common.Group.GroupsDBTable;
import TestingSystem.Common.Test.TestDBTable; import TestingSystem.Common.Test.TestDBTable;
import TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable; import TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
@@ -9,7 +8,6 @@ import TestingSystem.DVM.Configuration.ConfigurationDBTable;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; import TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; import TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable; import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforPackage.SapforPackage;

View File

@@ -1,7 +1,5 @@
package TestingSystem.DVM.DVMPackage; package TestingSystem.DVM.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask; import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import java.io.Serializable; import java.io.Serializable;

View File

@@ -14,7 +14,7 @@ import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask; import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask; import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.DVMTasks.DVMTask; import TestingSystem.DVM.DVMTasks.DVMTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.All.UnzipFolderPass; import Visual_DVM_2021.Passes.All.UnzipFolderPass;
import Visual_DVM_2021.Passes.SSH.ConnectionPass; import Visual_DVM_2021.Passes.SSH.ConnectionPass;
import javafx.util.Pair; import javafx.util.Pair;

View File

@@ -6,7 +6,7 @@ import Common.GlobalProperties;
import Common.Utils.Utils; import Common.Utils.Utils;
import Repository.Server.ServerCode; import Repository.Server.ServerCode;
import TestingSystem.Common.TestingPlanner; import TestingSystem.Common.TestingPlanner;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import TestingSystem.SAPFOR.Json.SapforConfiguration_json; import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
import TestingSystem.SAPFOR.Json.SapforTest_json; import TestingSystem.SAPFOR.Json.SapforTest_json;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
@@ -14,9 +14,7 @@ import org.apache.commons.io.FileUtils;
import java.io.File; import java.io.File;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.file.Paths;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap;
public class SapforTestingPlanner extends TestingPlanner<SapforPackage> { public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
File workspace; File workspace;
@Override @Override

View File

@@ -3,18 +3,14 @@ import Common.Constants;
import Common.Current; import Common.Current;
import Common.Database.Database; import Common.Database.Database;
import Common.Global; import Common.Global;
import Common.UI.UI;
import Common.Utils.Utils;
import GlobalData.Compiler.CompilerType; import GlobalData.Compiler.CompilerType;
import GlobalData.Machine.MachineType; import GlobalData.Machine.MachineType;
import GlobalData.User.UserState; import GlobalData.User.UserState;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json; import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.AddObjectPass; import Visual_DVM_2021.Passes.AddObjectPass;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.Date;
public class AddDVMPackage extends AddObjectPass<DVMPackage> { public class AddDVMPackage extends AddObjectPass<DVMPackage> {
public AddDVMPackage() { public AddDVMPackage() {
super(DVMPackage.class); super(DVMPackage.class);

View File

@@ -8,7 +8,7 @@ import Common.Utils.Index;
import ProjectData.LanguageName; import ProjectData.LanguageName;
import TestingSystem.Common.Group.Group; import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test; import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import TestingSystem.SAPFOR.Json.SapforConfiguration_json; import TestingSystem.SAPFOR.Json.SapforConfiguration_json;
import TestingSystem.SAPFOR.Json.SapforTasksPackage_json; import TestingSystem.SAPFOR.Json.SapforTasksPackage_json;
import TestingSystem.SAPFOR.Json.SapforTest_json; import TestingSystem.SAPFOR.Json.SapforTest_json;

View File

@@ -10,7 +10,7 @@ import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackage_json; import TestingSystem.DVM.DVMPackage.DVMPackage_json;
import TestingSystem.DVM.DVMTasks.DVMCompilationTask; import TestingSystem.DVM.DVMTasks.DVMCompilationTask;
import TestingSystem.DVM.DVMTasks.DVMRunTask; import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021; import Visual_DVM_2021.Passes.Pass_2021;
import java.util.Vector; import java.util.Vector;

View File

@@ -2,73 +2,30 @@ package Visual_DVM_2021.Passes.All;
import Common.Constants; import Common.Constants;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.Utils.Utils; import TestingSystem.Common.TasksPackageState;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import java.io.File; import java.io.File;
import java.util.Date; import java.util.Vector;
public class DownloadDVMPackage extends TestingSystemPass<DVMPackage> { public class DownloadDVMPackage extends DownloadDVMPackages {
@Override
public String getIconPath() {
return "/icons/DownloadBugReport.png";
}
@Override
public String getButtonText() {
return "";
}
File workspace;
File results_zip;
File results;
File loaded;
@Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (Current.Check(Log, Current.DVMPackage)){ if (Current.Check(Log, Current.DVMPackage)) {
//-- //--
target = Current.getDVMPackage(); DVMPackage dvmPackage = Current.getDVMPackage();
workspace = target.getLocalWorkspace();
results_zip = new File(workspace, "results.zip");
results = new File(workspace, "results");
loaded = new File(workspace, Constants.LOADED);
//-- //--
if (!target.state.equals(TasksPackageState.Done)){ if (!dvmPackage.state.equals(TasksPackageState.Done)) {
Log.Writeln_("Возможно скачать и отобразить задачи только завершённого пакета!"); Log.Writeln_("Возможно скачать и отобразить задачи только завершённого пакета!");
return false; return false;
} }
if (loaded.exists()){ if (new File(dvmPackage.getLocalWorkspace(), Constants.LOADED).exists()) {
/// Log.Writeln_("Пакет уже загружен"); /// Log.Writeln_("Пакет уже загружен");
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target); Global.testingServer.db.dvmRunTasks.ShowDVMPackage(dvmPackage);
return false; return false;
} }
return true; Vector<Integer> packages = new Vector<>();
packages.add(dvmPackage.id);
return super.canStart(packages);
} }
return false; return false;
} }
@Override
protected void performPreparation() throws Exception {
Utils.CheckAndCleanDirectory(target.getLocalWorkspace());
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DownloadDVMPackage,"", target.id));
}
@Override
protected void performDone() throws Exception {
super.performDone();
Pair<byte[], byte[]> packed = (Pair<byte[], byte[]>) response.object;
Utils.unpackFile(packed.getKey(), results_zip);
Utils.unpackFile(packed.getValue(), target.getJsonFile());
passes.get(PassCode_2021.UnzipFolderPass).Do(results_zip.getAbsolutePath(), workspace.getAbsolutePath());
FileUtils.writeStringToFile(loaded, new Date().toString());
}
@Override
protected void showDone() throws Exception {
Global.testingServer.db.dvmRunTasks.ShowDVMPackage(target);
}
} }

View File

@@ -0,0 +1,52 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Global;
import Common.Utils.Utils;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.Date;
import java.util.Vector;
public class DownloadDVMPackages extends TestingSystemPass<Vector<Integer>> {
@Override
public String getIconPath() {
return "/icons/DownloadBugReport.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = (Vector<Integer>) args[0];
return true;
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.DownloadDVMPackages, "", target));
}
@Override
protected void performDone() throws Exception {
Vector<Pair<Integer, Pair<byte[], byte[]>>> res = (Vector<Pair<Integer, Pair<byte[], byte[]>>>) response.object;
for (Pair<Integer, Pair<byte[], byte[]>> p : res) {
DVMPackage dvmPackage = Global.testingServer.db.dvmPackages.get(p.getKey());
File workspace = dvmPackage.getLocalWorkspace();
Utils.CheckAndCleanDirectory(workspace);
File results_zip = new File(workspace, "results.zip");
File results = new File(workspace, "results");
File loaded = new File(workspace, Constants.LOADED);
Pair<byte[], byte[]> packed = p.getValue();
//---
Utils.unpackFile(packed.getKey(), results_zip);
Utils.unpackFile(packed.getValue(), dvmPackage.getJsonFile());
passes.get(PassCode_2021.UnzipFolderPass).Do(results_zip.getAbsolutePath(), workspace.getAbsolutePath());
FileUtils.writeStringToFile(loaded, new Date().toString());
}
}
}

View File

@@ -8,7 +8,7 @@ import Common.Utils.Utils;
import GlobalData.Tasks.TaskState; import GlobalData.Tasks.TaskState;
import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMTasks.DVMRunTask; import TestingSystem.DVM.DVMTasks.DVMRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021; import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;

View File

@@ -307,12 +307,15 @@ public enum PassCode_2021 {
StartSapforPackage, StartSapforPackage,
AbortSapforPackage, AbortSapforPackage,
DownloadDVMPackage, DownloadDVMPackage,
DownloadDVMPackages,
//-> //->
TestPass; TestPass;
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case Undefined: case Undefined:
return "?"; return "?";
case DownloadDVMPackages:
return "Загрузить пакеты задач DVM";
case AbortSapforPackage: case AbortSapforPackage:
return "Прервать пакет тестирования SAPFOR"; return "Прервать пакет тестирования SAPFOR";
case StartSapforPackage: case StartSapforPackage:

View File

@@ -4,7 +4,7 @@ import Common.Global;
import Common.UI.UI; import Common.UI.UI;
import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.TasksPackage.TasksPackageState; import TestingSystem.Common.TasksPackageState;
import Visual_DVM_2021.Passes.Server.PublishServerObject; import Visual_DVM_2021.Passes.Server.PublishServerObject;
public abstract class StartTestingPackage<P extends TestingPackage> extends PublishServerObject<TestingServer, P> { public abstract class StartTestingPackage<P extends TestingPackage> extends PublishServerObject<TestingServer, P> {
public StartTestingPackage(Class<P> p_in) { public StartTestingPackage(Class<P> p_in) {