перевод инфы о файлах в джсон. попутно задел под пользовательские типы файлов стиль язык
This commit is contained in:
2025-03-07 03:10:05 +03:00
parent 670324837d
commit d66fdc5e77
12 changed files with 77 additions and 45 deletions

View File

@@ -12,6 +12,8 @@ import _VisualDVM.Passes.Sapfor.SapforAnalysis;
import _VisualDVM.ProjectData.Files.DBProjectFile;
import _VisualDVM.ProjectData.Files.UI.Editor.SPFEditor;
import _VisualDVM.ProjectData.Project.db_project_info;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.Utils;
import javafx.util.Pair;
@@ -633,11 +635,9 @@ public abstract class Sapfor extends OSDComponent {
public static void getTestMinMaxDime_C(Test test) {
File workspace = test.getServerPath();
Vector<File> files = new Vector<>();
String[] names = test.files.split("\n");
for (String name : names) {
if (!name.isEmpty()) {
files.add(new File(workspace, name));
}
TestFilesJson filesJson = Utils_.gson.fromJson(test.packedFilesJson,TestFilesJson.class);
for (TestFileJson fileJson : filesJson.values) {
files.add(new File(workspace, fileJson.name));
}
int min_dim = 0;
int max_dim = 0;

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector;
public class Constants {
public static final int version = 1198;
public static final int version = 1199;
public static final int planner_version = 12;
public static final int testingMaxKernels = 64;
//--
@@ -47,9 +47,9 @@ public class Constants {
public static final int SMTPPort = 465;
public static final int MailSocketPort = 465;
//
//7996 отладочный порт.
//7998 отладочный порт. теперь.
public static final int ComponentsServerPort = 7995; //7795
public static final int TestingServerPort = 7996; //7998
public static final int TestingServerPort = 7996; //7996
public static final int SocketTimeout = 0;
//-
public static final String ServerAddress = "alex-freenas.ddns.net";

View File

@@ -8,6 +8,8 @@ import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.Utils;
import org.apache.commons.io.FileUtils;
@@ -160,10 +162,13 @@ public class CreateTestFromDirectory extends Pass<Test> {
//----
if (!initTarget()) return false;
//----
TestFilesJson filesJson = new TestFilesJson();
Vector<String> filesNames = new Vector<>();
for (ProjectFile projectFile : project_files)
for (ProjectFile projectFile : project_files) {
filesNames.add(projectFile.file.getName());
target.files = String.join("\n", filesNames);
filesJson.values.add(new TestFileJson(projectFile));
}
target.packedFilesJson=Utils_.gson.toJson(filesJson);
return true;
}
public boolean isNotExcluded(ProjectFile projectFile) {

View File

@@ -2,12 +2,12 @@ package _VisualDVM.Passes.All;
import Common.Passes.Pass;
import Common.Passes.PassException;
import Common.Utils.Utils_;
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
import _VisualDVM.Global;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.Utils;
import org.apache.commons.io.FileUtils;
@@ -55,7 +55,9 @@ public class CreateTestFromFile extends Pass<Test> {
target.sender_name = Global.mainModule.getAccount().name;
target.group_id = group.id;
target.description = Utils_.getNameWithoutExtension(file_in.getName());
target.files = file_in.getName();
TestFilesJson filesJson = new TestFilesJson();
filesJson.values.add(new TestFileJson(new ProjectFile(file_in)));
target.packedFilesJson = Utils_.gson.toJson(filesJson);
return true;
}
public File packTestCode() throws Exception {

View File

@@ -1,6 +1,8 @@
package _VisualDVM.ServerObjectsCache;
import Common.Utils.Utils_;
import _VisualDVM.TestingSystem.Common.Test.Json.TestsFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import java.util.Vector;
@@ -8,6 +10,10 @@ public class TestCache extends VisualCache{
public String srcNames="";
public TestCache(Test object) {
Vector<String> names=new Vector<>();
TestsFilesJson json = Utils_.gson.fromJson(object.packedFilesJson, TestsFilesJson.class);
TestFilesJson json = Utils_.gson.fromJson(object.packedFilesJson, TestFilesJson.class);
for (TestFileJson testJson: json.values){
names.add(testJson.name);
}
srcNames =String.join(";", names);
}
}

View File

@@ -1,15 +1,24 @@
package _VisualDVM.TestingSystem.Common.Test.Json;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.LanguageStyle;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import com.google.gson.annotations.Expose;
public class TestFileJson {
@Expose
public String name="";
public String name = "";
@Expose
public FileType type = FileType.none;
@Expose
public LanguageName language = LanguageName.n;
@Expose
public LanguageStyle style = LanguageStyle.none;
public TestFileJson() {
}
public TestFileJson(ProjectFile src) {
name = src.file.getName();
type = src.fileType;
language = src.languageName;
style = src.style;
}
}

View File

@@ -3,7 +3,7 @@ import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class TestsFilesJson {
public class TestFilesJson {
@Expose
public List<TestFileJson> values = new Vector<>();
}

View File

@@ -12,6 +12,8 @@ import _VisualDVM.ProjectData.Files.FileState;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import com.sun.org.glassfish.gmbal.Description;
import org.apache.commons.io.FileUtils;
@@ -27,8 +29,8 @@ public class Test extends riDBObject {
public String args = ""; //аргументы командной строки. на всякий случай поле зарезервирую. пусть будут.
@Description("DEFAULT -1")
public int group_id = CommonConstants.Nan;
@Description("DEFAULT ''")
public String files = ""; //файлы теста
//@Description("DEFAULT ''")
//public String files = ""; //файлы теста
@Description("DEFAULT ''")
public String extended_description="";
@Description("DEFAULT ''")
@@ -110,9 +112,7 @@ public class Test extends riDBObject {
throw new RepositoryRefuseException("Не удалось переписать архив проекта");
return true;
}
public String getFilesForTable() {
return files.replace("\n", ";");
}
//todo проджект файлы тут не нужны. сделать с учетом джсона
public LinkedHashMap<LanguageName, Vector<ProjectFile>> getPrograms() {
LinkedHashMap<LanguageName, Vector<ProjectFile>> res = new LinkedHashMap<>();
//--
@@ -120,14 +120,12 @@ public class Test extends riDBObject {
res.put(LanguageName.c, new Vector<>());
res.put(LanguageName.cpp, new Vector<>());
//--
String[] files_names = files.split("\n");
for (String file_name : files_names) {
ProjectFile file = new ProjectFile(new File(file_name));
TestFilesJson json = Utils_.gson.fromJson(packedFilesJson,TestFilesJson.class);
for (TestFileJson file : json.values) {
//--
if (!file.state.equals(FileState.Excluded) &&
file.fileType.equals(FileType.program) &&
(!file.languageName.equals(LanguageName.n)))
res.get(file.languageName).add(file);
if (file.type.equals(FileType.program) &&
(!file.language.equals(LanguageName.n)))
res.get(file.language).add(new ProjectFile(new File(file.name)));
}
return res;
}

View File

@@ -15,6 +15,7 @@ import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.Passes.All.DownloadRepository;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.Server.RepositoryServer;
@@ -23,6 +24,8 @@ import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.MachineProcess.MachineProcess;
import _VisualDVM.TestingSystem.Common.MachineProcess.MachineProcessSet;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestType;
import _VisualDVM.TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
@@ -696,14 +699,15 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
File[] files = src.listFiles(pathname -> !pathname.isDirectory());
if (files != null && files.length > 0) {
//--
Vector<String> filesNames = new Vector<>();
for (File file : files)
filesNames.add(file.getName());
TestFilesJson filesJson= new TestFilesJson();
for (File file : files) {
filesJson.values.add(new TestFileJson(new ProjectFile(file)));
}
//--
Test test = new Test();
test.group_id = group.id;
test.description = name;
test.files = String.join("\n", filesNames);
test.packedFilesJson = Utils_.gson.toJson(filesJson);
test.sender_address = group.sender_address;
test.sender_name = group.sender_name;
test.extended_description = descriptions.get(name);

View File

@@ -1,6 +1,5 @@
package _VisualDVM.TestingSystem.Common;
import Common.CommonConstants;
import Common.Database.RepositoryRefuseException;
import Common.Database.SQLITE.SQLiteDatabase;
import Common.Utils.Utils_;
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
@@ -9,9 +8,12 @@ import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestDBTable;
import _VisualDVM.TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
@@ -30,7 +32,6 @@ import _VisualDVM.TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsComma
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapforState;
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapforsDBTable;
import _VisualDVM.Utils;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
@@ -210,7 +211,9 @@ public class TestsDatabase extends SQLiteDatabase {
test.sender_name = account.name;
test.sender_address = account.email;
test.group_id = group.id;
test.files = file.getName();
TestFilesJson testFilesJson=new TestFilesJson();
testFilesJson.values.add(new TestFileJson(new ProjectFile(file)));
test.packedFilesJson=Utils_.gson.toJson(testFilesJson);
Insert(test);
//->>
SaveTestFromSingleFile(sapfor, group, test, file);