diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index fa849864..7d8805b7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,8 +9,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Common/Constants.java b/src/Common/Constants.java
index a8cc76fc..874a0893 100644
--- a/src/Common/Constants.java
+++ b/src/Common/Constants.java
@@ -11,6 +11,7 @@ public class Constants {
public static final String REPOSITORY_AUTHENTICATION = "--username dvmhuser --password dvmh2013 --non-interactive";
public static final String DVM_REPOSITORY = "http://svn.dvm-system.org/svn/dvmhrepo/dvm";
public static final String SAPFOR_REPOSITORY = "http://svn.dvm-system.org/svn/dvmhrepo/sapfor";
+ public static final String SAPFOR_REPOSITORY_BIN = "/sapfor/experts/Sapfor_2017/_bin";
//--
//-файлы-признаки
public static final String LOADED = "LOADED";
diff --git a/src/Repository/Component/UI/PublishFields.form b/src/Repository/Component/UI/PublishFields.form
index 37a83560..663062b5 100644
--- a/src/Repository/Component/UI/PublishFields.form
+++ b/src/Repository/Component/UI/PublishFields.form
@@ -1,6 +1,6 @@
diff --git a/src/Repository/Component/UI/PublishFields.java b/src/Repository/Component/UI/PublishFields.java
index 826802cd..75271034 100644
--- a/src/Repository/Component/UI/PublishFields.java
+++ b/src/Repository/Component/UI/PublishFields.java
@@ -14,6 +14,7 @@ public class PublishFields implements DialogFields {
public JCheckBox cbUpdateMinimalVersion;
public JLabel lMinimalVersion;
public JLabel lPublishingVersion;
+ public JCheckBox cbAssemblyOnServer;
public PublishFields() {
cbNeedsBroadcast.addActionListener(new ActionListener() {
@Override
diff --git a/src/Repository/RepositoryServer.java b/src/Repository/RepositoryServer.java
index d9e684b3..eb41c15d 100644
--- a/src/Repository/RepositoryServer.java
+++ b/src/Repository/RepositoryServer.java
@@ -135,11 +135,13 @@ public abstract class RepositoryServer {
multipart.addBodyPart(attachmentBodyPart);
}
for (File f : directAttachements) {
- MimeBodyPart attachmentBodyPart = new MimeBodyPart();
- DataSource source = new FileDataSource(f);
- attachmentBodyPart.setDataHandler(new DataHandler(source));
- attachmentBodyPart.setFileName(f.getName());
- multipart.addBodyPart(attachmentBodyPart);
+ if (f.exists()) {
+ MimeBodyPart attachmentBodyPart = new MimeBodyPart();
+ DataSource source = new FileDataSource(f);
+ attachmentBodyPart.setDataHandler(new DataHandler(source));
+ attachmentBodyPart.setFileName(f.getName());
+ multipart.addBodyPart(attachmentBodyPart);
+ }
}
message.setContent(multipart);
Transport.send(message);
diff --git a/src/Repository/Server/ComponentsServer.java b/src/Repository/Server/ComponentsServer.java
index 0019cb4c..cd7cc8a0 100644
--- a/src/Repository/Server/ComponentsServer.java
+++ b/src/Repository/Server/ComponentsServer.java
@@ -1,5 +1,4 @@
package Repository.Server;
-import Common.Constants;
import Common.Database.DBObject;
import Common.Global;
import Common.Utils.Utils;
@@ -75,13 +74,6 @@ public class ComponentsServer extends RepositoryServer {
Account account = null;
if (!Global.properties.OldServer) {
switch (code) {
- case Patch:
- Print("Очистка файлов в багрепортах");
- for (BugReport bug: db.bugReports.Data.values()){
-
- }
- response = new ServerExchangeUnit_2021(ServerCode.OK);
- break;
//
case CheckSubscriberRole:
Print("Проверить роль пользователя");
@@ -419,7 +411,6 @@ public class ComponentsServer extends RepositoryServer {
//bonus backup
if (rightNow.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
Vector targets = new Vector<>();
- targets.add(Constants.MailAddress);
targets.addAll(Arrays.asList(Global.admins_mails));
EmailMessage message = new EmailMessage(
"db backup",
diff --git a/src/Repository/Server/ServerCode.java b/src/Repository/Server/ServerCode.java
index f955bd82..0d60ec9a 100644
--- a/src/Repository/Server/ServerCode.java
+++ b/src/Repository/Server/ServerCode.java
@@ -73,5 +73,6 @@ public enum ServerCode {
GetFirstActiveSapforTasksPackage,
DownloadSapforTasksPackage,
Patch,
+ EmailSapforAssembly,
OLD
}
diff --git a/src/TestingSystem/TestingServer.java b/src/TestingSystem/TestingServer.java
index 1cd910a9..4ad61a91 100644
--- a/src/TestingSystem/TestingServer.java
+++ b/src/TestingSystem/TestingServer.java
@@ -10,6 +10,7 @@ import GlobalData.Tasks.TaskState;
import GlobalData.User.User;
import ProjectData.LanguageName;
import ProjectData.Project.db_project_info;
+import Repository.EmailMessage;
import Repository.RepositoryRefuseException;
import Repository.RepositoryServer;
import Repository.Server.ServerCode;
@@ -39,6 +40,7 @@ import org.apache.commons.io.FileUtils;
import javax.swing.*;
import java.io.File;
import java.nio.file.Paths;
+import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Vector;
@@ -313,51 +315,25 @@ public class TestingServer extends RepositoryServer {
return (SapforTasksResults_json) Utils.jsonFromFile(
results_file, SapforTasksResults_json.class);
}
- //надо в другое место.
- /*
- public Vector CompareSapforPackages(SapforTasksPackage package1, SapforTasksPackage package2) throws Exception {
- Vector comparisonLog = new Vector<>();
- // чтобы сравнивать. должен быть идентичный список тестов. (без учета последовательности)
- // идентичный набор проходов (с учетом последовательности)
- //идентичный набор флагов (?) без учета последовательности.
- // то есть должны отличаться только тестируемые версии САПФОР.
- SapforTasksResults_json results1_json = getSapforPackageResults(package1);
- SapforTasksResults_json results2_json = getSapforPackageResults(package2);
- if (results1_json.tasks.size() != results2_json.tasks.size()) {
- comparisonLog.add("Количество задач в пакетах не совпадает.");
- comparisonLog.add(package1.id + ": " + results1_json.tasks.size() + "/" + package2.id + ": " + results2_json.tasks.size());
- return comparisonLog;
- }
- //подходит если все задачи из первого пакета содержатся во втором, и размер одинаковый.
- Vector sortedTasks2 = new Vector<>();
- for (SapforTask task1 : results1_json.tasks) {
- //на
- boolean match = false;
- for (SapforTask task2 : results2_json.tasks) {
- if (task1.isComparable(task2)) {
- match = true;
- sortedTasks2.add(task2);
- break;
- }
- }
- if (!match) {
- comparisonLog.add("Найдена не совпадающая задача.");
- return comparisonLog;
- }
- }
- for (SapforTask task1 : results1_json.tasks) {
- for (SapforTask task2 : sortedTasks2) {
- task1.Compare(task2, comparisonLog);
- }
- }
- return comparisonLog;
- }
- */
@Override
protected void Session() throws Exception {
DBObject dbObject = null;
Test test = null;
switch (code) {
+ case EmailSapforAssembly:
+ Print("Сообщить о сборке SAPFOR для пользователя " + request.arg);
+ Vector assembly_info = (Vector) request.object;
+ File out = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.out_file).toFile();
+ File err = Paths.get(Global.RepoDirectory.getAbsolutePath(), Constants.SAPFOR_REPOSITORY_BIN, Constants.err_file).toFile();
+ Vector targets = new Vector<>(Arrays.asList(Global.admins_mails));
+ EmailMessage message = new EmailMessage(
+ "Выполнена сборка системы SAPFOR",
+ "Версия: " + assembly_info.get(0) + "\n" + "Статус: " + assembly_info.get(1),
+ targets
+ );
+ Email(message, out, err);
+ response = new ServerExchangeUnit_2021(ServerCode.OK);
+ break;
case PublishSapforPackageTasks:
Print("Опубликовать задачи SAPFOR для пользователя " + request.arg);
SetCurrentAccountDB(request.arg);
diff --git a/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java b/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
index 879d5145..6b929d42 100644
--- a/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
+++ b/src/Visual_DVM_2021/Passes/All/InstallServerSapfor.java
@@ -1,5 +1,6 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
+import Common.Current;
import Common.Global;
import Common.Utils.Utils;
import GlobalData.RemoteFile.RemoteFile;
@@ -12,6 +13,7 @@ import Visual_DVM_2021.Passes.SSH.ConnectionPass;
import Visual_DVM_2021.Passes.TestingSystemPass;
import java.util.Date;
+import java.util.Vector;
public class InstallServerSapfor extends ConnectionPass