Оптимизация рассылки при публикации.
This commit is contained in:
2025-03-09 17:27:35 +03:00
parent f3747a359b
commit d2a333c7cb
5 changed files with 37 additions and 39 deletions

8
.idea/workspace.xml generated
View File

@@ -7,17 +7,11 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/EmailChecker.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/Component/Json/ComponentPublicationInfoJson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/Component/Json/ComponentPublicationInfoJson.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServerProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServerProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ArchivesBackupPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ArchivesBackupPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponent.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishComponent.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,4 +1,5 @@
package _VisualDVM.ComponentsServer.Component.Json;
import Common.CommonConstants;
import Common.Utils.Utils_;
import _VisualDVM.ComponentsServer.Component.Component;
import _VisualDVM.ComponentsServer.Component.ComponentType;
@@ -13,15 +14,22 @@ public class ComponentPublicationInfoJson implements Serializable {
@Expose
public byte[] packedFile = null;
@Expose
public long versionNumber = CommonConstants.Nan;
@Expose
public String versionText = "";
@Expose
public String changeRecord = "";
@Expose
public boolean needsUpdateMinimalVersion = false;
@Expose
public boolean needsEmail = false;
@Expose
public boolean needsSendFile = false;
public ComponentPublicationInfoJson(Component component) throws Exception{
componentType = component.getComponentType();
fileName = component.getFileName();
packedFile = Utils_.fileToBytes(component.getFile());
versionNumber = component.version;
versionText = component.getVersionText();
}
}

View File

@@ -17,6 +17,7 @@ import _VisualDVM.GlobalData.Machine.MachineType;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.GlobalData.User.User;
import _VisualDVM.Passes.All.ArchivesBackupPass;
import _VisualDVM.Passes.All.Email;
import _VisualDVM.Passes.All.UnzipFolderPass;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.ProjectData.LanguageName;
@@ -235,6 +236,25 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
bufferWriter_.write("Минимальная версия поднята до " + info.versionText + "\n");
bufferWriter_.close();
}
//-рассылка об изменениях.
if (info.needsEmail){
String version_mail_header = String.join(" ",
"Опубликована версия",
Utils_.DQuotes(info.versionNumber),
"компонента",
Utils_.DQuotes(info.componentType.getDescription()));
//-
EmailMessage message =
new EmailMessage(version_mail_header,
info.changeRecord
);
if (info.needsSendFile)
message.addAttachement(componentFile);
//--
for (String address: credentials_db.userAccounts.getActiveMails()){
EmailMessagesQueue.add(new Pair<>(address,message));
}
}
}
void GetComponentsVersionsInfo() throws Exception {
Vector<String> types = (Vector<String>) request.object;

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector;
public class Constants {
public static final int version = 1202;
public static final int version = 1203;
public static final int planner_version = 12;
public static final int testingMaxKernels = 64;
//--

View File

@@ -67,6 +67,8 @@ public class PublishComponent extends ComponentsServerPass<Component> {
ComponentPublicationInfoJson info=new ComponentPublicationInfoJson(target);
info.changeRecord = change_record;
info.needsUpdateMinimalVersion = f.fields.cbUpdateMinimalVersion.isSelected();
info.needsEmail = f.fields.cbNeedsBroadcast.isSelected();
info.needsSendFile =f.fields.cbForceMail.isSelected();
//--
return SendRequest(ServerCode.UpdateComponent, "",info);
}
@@ -77,31 +79,10 @@ public class PublishComponent extends ComponentsServerPass<Component> {
protected void performDone() throws Exception {
target.actual_version = target.version;
target.CheckIfNeedsUpdateOrPublish();
if ((f.Result != null)) {
version_mail_header = String.join(" ",
"Опубликована версия",
Utils_.DQuotes(target.version),
"компонента",
Utils_.DQuotes(target.getComponentType().getDescription()));
EmailMessage message =
new EmailMessage(version_mail_header,
f.Result
);
if (f.fields.cbForceMail.isSelected())
message.addAttachement(target.getFile());
//--
Pass unsafeEmail = new Email(){
@Override
public String getDescription() {
return "Рассылка по Email";
}
@Override
protected boolean isSafe() {
return false;
}
};
unsafeEmail.Do(message, Global.componentsServer.credentials_db.userAccounts.getActiveMails());
//---
protected void showDone() throws Exception {
Global.components.refreshUpdatesStatus();
if (target.getComponentType().equals(ComponentType.Sapfor_F) && f.fields.cbAssemblyOnServer.isSelected()) {
Global.mainModule.getUI().getMainWindow().FocusTesting();
Global.mainModule.getUI().getMainWindow().getTestingWindow().FocusSapforTesting();
@@ -109,9 +90,4 @@ public class PublishComponent extends ComponentsServerPass<Component> {
}
}
}
@Override
protected void showDone() throws Exception {
Global.components.refreshUpdatesStatus();
}
}