продолжение рефакторинга клиентских проходов.

This commit is contained in:
2025-02-04 16:06:49 +03:00
parent e15f2921ee
commit 8696c7e66f
6 changed files with 61 additions and 46 deletions

View File

@@ -7,6 +7,7 @@ import Common.Database.Tables.DataSet;
import Common.Passes.PassCode_;
import Common.Utils.TextLog;
import Common.Utils.Utils_;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.LinkedHashMap;
@@ -294,4 +295,13 @@ public abstract class Database {
return log.isEmpty();
}
public abstract PassCode_ getSynchronizePassCode(); //если бд есть на сервере.
//--
public void ReplaceFileAndReconnect(File file_in) throws Exception{
Disconnect();
Utils_.forceDeleteWithCheck(getFile());
FileUtils.moveFile(file_in, getFile());
Connect();
prepareTablesStatements();
Synchronize();
}
}

View File

@@ -2,10 +2,11 @@ package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
import Common.Visual.Controls.PassButton;
import _VisualDVM.Global;
import _VisualDVM.Passes.Server.TestingSystemPass;
import _VisualDVM.Passes.Server.ClientPass;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.TestingServer;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
@@ -15,19 +16,19 @@ import org.apache.commons.io.FileUtils;
import javax.swing.*;
import java.io.File;
public class SynchronizeTests extends TestingSystemPass<Object> {
public class SynchronizeTests extends ClientPass<TestingServer,Object> {
File new_db_file;
@Override
protected boolean canStart(Object... args) throws Exception {
return Global.mainModule.getAccount().CheckRegistered(Log);
return Global.mainModule.getAccount().CheckRegistered(Log)&&SendRequest(ServerCode.ReceiveTestsDatabase);
}
@Override
public String getIconPath() {
return "/icons/ComponentsActual.png";
}
@Override
public String getButtonText() {
return "";
protected TestingServer getServer() {
return Global.testingServer;
}
@Override
public JButton createButton() {
@@ -35,53 +36,21 @@ public class SynchronizeTests extends TestingSystemPass<Object> {
}
@Override
protected void showPreparation() throws Exception {
server.db.SaveLastSelections();
//--
// server.db.machines _testing_system
//--
server.db.dvmConfigurations.ClearUI();
server.db.groups.ClearUI();
server.db.sapforConfigurations.ClearUI();
server.db.serverSapfors.ClearUI();
server.db.dvmPackages.ClearUI();
server.db.sapforPackages.ClearUI();
server.db.sapforSettings.ClearUI();
server.db.dvmSettings.ClearUI();
getServer().db.DropUI();
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.ReceiveTestsDatabase));
server_response.Unpack(new_db_file = Utils.getTempFileName("tdb"));
protected void body() throws Exception {
request.server_response.Unpack(new_db_file = Utils.getTempFileName("tdb"));
}
@Override
protected void performDone() throws Exception {
super.performDone();
server.db.Disconnect();
Utils_.forceDeleteWithCheck(server.db.getFile());
FileUtils.moveFile(new_db_file, server.db.getFile());
server.db.Connect();
server.db.prepareTablesStatements();
server.db.Synchronize();
getServer().db.ReplaceFileAndReconnect(new_db_file);
}
@Override
protected void showDone() throws Exception {
if (Global.mainModule.getUI().hasMainWindow()) {
//--
//--
VisualCaches.ClearDataForClass(DVMConfiguration.class);
VisualCaches.ClearDataForClass(SapforConfiguration.class);
VisualCaches.ClearDataForClass(DVMPackage.class);
VisualCaches.ClearDataForClass(SapforPackage.class);
//server.db.machines
server.db.dvmConfigurations.ShowUI();
server.db.groups.ShowUI();
server.db.sapforConfigurations.ShowUI();
server.db.serverSapfors.ShowUI();
server.db.dvmPackages.ShowUI();
server.db.sapforPackages.ShowUI();
server.db.sapforSettings.ShowUI();
server.db.dvmSettings.ShowUI();
server.db.RestoreLastSelections(); //---- ? объединить с RestoreCredentials
getServer().db.ResetUI();
Global.mainModule.getUI().getMainWindow().ShowCheckedTestsCount();
}
}

View File

@@ -43,4 +43,7 @@ public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T>
protected boolean SendRequest(ServerCode code_in,String arg_in, Serializable object_in){
return SendRequest(code_in,arg_in, object_in, Global.properties.SocketTimeout);
}
protected boolean SendRequest(ServerCode code_in){
return SendRequest(code_in, "", null);
}
}

View File

@@ -21,8 +21,8 @@ public abstract class RepositoryPass<S extends RepositoryServer, T> extends Pass
protected ObjectInputStream in = null; // поток чтения из сокета
protected ObjectOutputStream out = null; // поток записи в сокет
//-
protected ServerExchangeUnit_2021 client_request;
protected ServerExchangeUnit_2021 server_response;
public ServerExchangeUnit_2021 client_request;
public ServerExchangeUnit_2021 server_response;
//-
protected Socket clientSocket = null; //сокет для общения
protected ServerCode ExitCode = ServerCode.Undefined;

View File

@@ -10,16 +10,19 @@ import _VisualDVM.GlobalData.Account.Account;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Repository.Component.Sapfor.Sapfor;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestDBTable;
import _VisualDVM.TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfigurationDBTable;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettingsDBTable;
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import _VisualDVM.TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
@@ -326,4 +329,31 @@ public class TestsDatabase extends SQLiteDatabase {
}
//todo возможно рассмотреть вариант с синхроннизацией тестов для пакетов через команду серверу а не в нити
//во избежание конфликта доступа,или удалением тестов во время копирования(?)
public void DropUI(){
SaveLastSelections();
dvmConfigurations.ClearUI();
groups.ClearUI();
sapforConfigurations.ClearUI();
serverSapfors.ClearUI();
dvmPackages.ClearUI();
sapforPackages.ClearUI();
sapforSettings.ClearUI();
dvmSettings.ClearUI();
}
public void ResetUI(){
VisualCaches.ClearDataForClass(DVMConfiguration.class);
VisualCaches.ClearDataForClass(SapforConfiguration.class);
VisualCaches.ClearDataForClass(DVMPackage.class);
VisualCaches.ClearDataForClass(SapforPackage.class);
//server.db.machines
dvmConfigurations.ShowUI();
groups.ShowUI();
sapforConfigurations.ShowUI();
serverSapfors.ShowUI();
dvmPackages.ShowUI();
sapforPackages.ShowUI();
sapforSettings.ShowUI();
dvmSettings.ShowUI();
RestoreLastSelections();
}
}