рефакторинг публикации компонентов
This commit is contained in:
14
.idea/workspace.xml
generated
14
.idea/workspace.xml
generated
@@ -6,7 +6,19 @@
|
|||||||
</artifacts-to-build>
|
</artifacts-to-build>
|
||||||
</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 afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Json/ComponentPublicationInfoJson.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/Common/Utils/Utils_.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils_.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AppendBugReportField.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetComponentsActualVersions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetComponentsActualVersions.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/Passes/Server/ClientPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ClientPass.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Component.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Component.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.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" />
|
||||||
|
</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" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
|||||||
@@ -520,10 +520,10 @@ public class Utils_ {
|
|||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
public static <T extends Properties> T SynschronizeProperties(File propertiesFile, Class<T> properties_class) {
|
public static <T extends Properties> T SynschronizeProperties(File propertiesFile, Class<T> properties_class) {
|
||||||
T res= null;
|
T res = null;
|
||||||
try {
|
try {
|
||||||
res= properties_class.newInstance();
|
res = properties_class.newInstance();
|
||||||
if (propertiesFile.exists()){
|
if (propertiesFile.exists()) {
|
||||||
//файл существует. нужно его ссчитать.
|
//файл существует. нужно его ссчитать.
|
||||||
res = (T) Utils_.jsonFromFile(propertiesFile, properties_class);
|
res = (T) Utils_.jsonFromFile(propertiesFile, properties_class);
|
||||||
}
|
}
|
||||||
@@ -535,8 +535,8 @@ public class Utils_ {
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
public static <T extends Properties> T ReadProperties(File propertiesFile, Class<T>properties_class){
|
public static <T extends Properties> T ReadProperties(File propertiesFile, Class<T> properties_class) {
|
||||||
T res= null;
|
T res = null;
|
||||||
try {
|
try {
|
||||||
res = (T) Utils_.jsonFromFile(propertiesFile, properties_class);
|
res = (T) Utils_.jsonFromFile(propertiesFile, properties_class);
|
||||||
res.setFile(propertiesFile);
|
res.setFile(propertiesFile);
|
||||||
@@ -546,4 +546,12 @@ public class Utils_ {
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
public static File getFile(String... paths) {
|
||||||
|
if (paths.length == 0)
|
||||||
|
return null;
|
||||||
|
File res = new File(paths[0]);
|
||||||
|
for (int i = 1; i < paths.length; ++i)
|
||||||
|
res = new File(res, paths[i]);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ public class AppendBugReportField extends ClientPass<ComponentsServer, BugReport
|
|||||||
String oldValue;
|
String oldValue;
|
||||||
String addition;
|
String addition;
|
||||||
String newValue;
|
String newValue;
|
||||||
|
BugReport actual;
|
||||||
@Override
|
@Override
|
||||||
public String getIconPath() {
|
public String getIconPath() {
|
||||||
return "/icons/Append.png";
|
return "/icons/Append.png";
|
||||||
@@ -23,15 +24,13 @@ public class AppendBugReportField extends ClientPass<ComponentsServer, BugReport
|
|||||||
public String getButtonText() {
|
public String getButtonText() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
protected boolean canUpdate() {
|
|
||||||
return target.canModify(Global.mainModule.getAccount(), Log);
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
protected ComponentsServer getServer() {
|
protected ComponentsServer getServer() {
|
||||||
return Global.componentsServer;
|
return Global.componentsServer;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected boolean canStart(Object... args) throws Exception {
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
|
actual = null;
|
||||||
if (getServer().db.getTable(BugReport.class).getUI().CheckCurrent(Log)) {
|
if (getServer().db.getTable(BugReport.class).getUI().CheckCurrent(Log)) {
|
||||||
target = getServer().db.getTable(BugReport.class).getUI().getCurrent();
|
target = getServer().db.getTable(BugReport.class).getUI().getCurrent();
|
||||||
if (!target.CheckNotDraft(Log))
|
if (!target.CheckNotDraft(Log))
|
||||||
@@ -45,13 +44,18 @@ public class AppendBugReportField extends ClientPass<ComponentsServer, BugReport
|
|||||||
addition = Utils_.Brackets(Utils_.print_date(
|
addition = Utils_.Brackets(Utils_.print_date(
|
||||||
new Date())) + " " + Global.mainModule.getAccount().name
|
new Date())) + " " + Global.mainModule.getAccount().name
|
||||||
+ " : " + addition;
|
+ " : " + addition;
|
||||||
return canUpdate();
|
if (canUpdate() && (SendRequest(ServerCode.AppendBugReportTextField, "", new BugReportAdditionJson(target, fieldName, addition)))) {
|
||||||
|
actual = (BugReport) request.target;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
protected boolean canUpdate() {
|
||||||
|
return target.canModify(Global.mainModule.getAccount(), Log);
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void body() throws Exception {
|
protected void body() throws Exception {
|
||||||
BugReport actual = (BugReport) getServer().ClientRequest(ServerCode.AppendBugReportTextField, "", new BugReportAdditionJson(target, fieldName, addition));
|
|
||||||
target.SynchronizeFields(actual);
|
target.SynchronizeFields(actual);
|
||||||
Global.componentsServer.db.Update(target);
|
Global.componentsServer.db.Update(target);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ import _VisualDVM.Repository.Server.ComponentsServer;
|
|||||||
import _VisualDVM.Repository.Server.ServerCode;
|
import _VisualDVM.Repository.Server.ServerCode;
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class GetComponentsActualVersions extends ClientPass<ComponentsServer,Object> {
|
public class GetComponentsActualVersions extends ClientPass<ComponentsServer, Object> {
|
||||||
|
Vector<ComponentVersionsInfoJson> versions;
|
||||||
@Override
|
@Override
|
||||||
public String getIconPath() {
|
public String getIconPath() {
|
||||||
return "/icons/Components.png";
|
return "/icons/Components.png";
|
||||||
@@ -18,12 +19,20 @@ public class GetComponentsActualVersions extends ClientPass<ComponentsServer,Obj
|
|||||||
return Global.componentsServer;
|
return Global.componentsServer;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void body() throws Exception {
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
|
versions = null;
|
||||||
Vector<String> types = new Vector<>();
|
Vector<String> types = new Vector<>();
|
||||||
for (ComponentType key: Global.components.Data.keySet())
|
for (ComponentType key : Global.components.Data.keySet())
|
||||||
types.add(key.toString());
|
types.add(key.toString());
|
||||||
Vector<ComponentVersionsInfoJson> versions = (Vector<ComponentVersionsInfoJson>) getServer().ClientRequest(ServerCode.GetComponentsVersionsInfo, "", types);
|
if (SendRequest(ServerCode.GetComponentsVersionsInfo, "", types)) {
|
||||||
for (ComponentVersionsInfoJson info: versions){
|
versions = (Vector<ComponentVersionsInfoJson>) request.target;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void body() throws Exception {
|
||||||
|
for (ComponentVersionsInfoJson info : versions) {
|
||||||
Global.components.get(info.componentType).unpackActualVersion(info.actual_version);
|
Global.components.get(info.componentType).unpackActualVersion(info.actual_version);
|
||||||
Global.components.get(info.componentType).unpackMinimalVersion(info.minimal_version);
|
Global.components.get(info.componentType).unpackMinimalVersion(info.minimal_version);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,17 +3,18 @@ import Common.Utils.Utils_;
|
|||||||
import _VisualDVM.Global;
|
import _VisualDVM.Global;
|
||||||
import _VisualDVM.GlobalData.Account.AccountRole;
|
import _VisualDVM.GlobalData.Account.AccountRole;
|
||||||
import _VisualDVM.Passes.PassCode;
|
import _VisualDVM.Passes.PassCode;
|
||||||
import _VisualDVM.Passes.Server.ComponentsRepositoryPass;
|
import _VisualDVM.Passes.Server.ClientPass;
|
||||||
import _VisualDVM.Repository.Component.Component;
|
import _VisualDVM.Repository.Component.Component;
|
||||||
import _VisualDVM.Repository.Component.ComponentType;
|
import _VisualDVM.Repository.Component.ComponentType;
|
||||||
|
import _VisualDVM.Repository.Component.Json.ComponentPublicationInfoJson;
|
||||||
import _VisualDVM.Repository.Component.UI.PublishForm;
|
import _VisualDVM.Repository.Component.UI.PublishForm;
|
||||||
import _VisualDVM.Repository.EmailMessage;
|
import _VisualDVM.Repository.EmailMessage;
|
||||||
import _VisualDVM.Repository.RepositoryServer;
|
import _VisualDVM.Repository.RepositoryServer;
|
||||||
|
import _VisualDVM.Repository.Server.ComponentsServer;
|
||||||
import _VisualDVM.Repository.Server.ServerCode;
|
import _VisualDVM.Repository.Server.ServerCode;
|
||||||
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
public class PublishComponent extends ClientPass<ComponentsServer, Component> {
|
||||||
String version_mail_header = "";
|
String version_mail_header = "";
|
||||||
String version_text = "";
|
String version_text = "";
|
||||||
PublishForm f = new PublishForm();
|
PublishForm f = new PublishForm();
|
||||||
@@ -22,8 +23,8 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
|||||||
return "/Common/icons/Publish.png";
|
return "/Common/icons/Publish.png";
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getButtonText() {
|
protected ComponentsServer getServer() {
|
||||||
return "";
|
return Global.componentsServer;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected boolean canStart(Object... args) throws Exception {
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
@@ -41,7 +42,6 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
|||||||
;
|
;
|
||||||
if (Global.components.getUI().CheckCurrent(Log)) {
|
if (Global.components.getUI().CheckCurrent(Log)) {
|
||||||
target = Global.components.getUI().getCurrent();
|
target = Global.components.getUI().getCurrent();
|
||||||
target.needs_update_minimal_version = false;
|
|
||||||
f.fields.cbUpdateMinimalVersion.setSelected(false);
|
f.fields.cbUpdateMinimalVersion.setSelected(false);
|
||||||
f.fields.lMinimalVersion.setText(String.valueOf(target.minimal_version));
|
f.fields.lMinimalVersion.setText(String.valueOf(target.minimal_version));
|
||||||
f.fields.lPublishingVersion.setText(String.valueOf(target.version));
|
f.fields.lPublishingVersion.setText(String.valueOf(target.version));
|
||||||
@@ -56,14 +56,6 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
|||||||
f.fields.cbAssemblyOnServer.setSelected(false);
|
f.fields.cbAssemblyOnServer.setSelected(false);
|
||||||
}
|
}
|
||||||
if (f.ShowDialog(getDescription())) {
|
if (f.ShowDialog(getDescription())) {
|
||||||
target.needs_update_minimal_version = f.fields.cbUpdateMinimalVersion.isSelected();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void ServerAction() throws Exception {
|
|
||||||
String change_description = (f.Result == null) ? "не указаны" : f.Result;
|
String change_description = (f.Result == null) ? "не указаны" : f.Result;
|
||||||
String change_record_header = String.join(" ",
|
String change_record_header = String.join(" ",
|
||||||
Utils_.Brackets(Utils_.print_date(new Date())) + ":",
|
Utils_.Brackets(Utils_.print_date(new Date())) + ":",
|
||||||
@@ -74,23 +66,16 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
|||||||
change_description,
|
change_description,
|
||||||
RepositoryServer.separator, ""
|
RepositoryServer.separator, ""
|
||||||
);
|
);
|
||||||
String packed =
|
|
||||||
target.getComponentType().toString() + "\n" +
|
|
||||||
target.getFileName() + "\n" +
|
|
||||||
target.getVersionText() + "\n" +
|
|
||||||
change_record;
|
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishComponent,
|
|
||||||
packed, Utils_.fileToBytes(target.getFile())
|
|
||||||
));
|
|
||||||
if (target.needs_update_minimal_version) {
|
|
||||||
packed = target.getComponentType().toString() + "\n" +
|
|
||||||
target.getVersionText() + "\n";
|
|
||||||
//--
|
//--
|
||||||
Command(new ServerExchangeUnit_2021(ServerCode.UpdateComponentMinimalVersion,
|
ComponentPublicationInfoJson info=new ComponentPublicationInfoJson(target);
|
||||||
packed, Utils_.fileToBytes(target.getFile())
|
info.changeRecord = change_record;
|
||||||
));
|
info.needsUpdateMinimalVersion = f.fields.cbUpdateMinimalVersion.isSelected();
|
||||||
|
//--
|
||||||
|
return SendRequest(ServerCode.UpdateComponent, "",info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void performDone() throws Exception {
|
protected void performDone() throws Exception {
|
||||||
target.actual_version = target.version;
|
target.actual_version = target.version;
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
package _VisualDVM.Passes.Server;
|
package _VisualDVM.Passes.Server;
|
||||||
import Common.Passes.Pass;
|
import Common.Passes.Pass;
|
||||||
|
import _VisualDVM.Global;
|
||||||
import _VisualDVM.Repository.RepositoryServer;
|
import _VisualDVM.Repository.RepositoryServer;
|
||||||
|
import _VisualDVM.Repository.Server.ServerCode;
|
||||||
|
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T> {
|
public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T> {
|
||||||
|
protected RepositoryPass request;
|
||||||
@Override
|
@Override
|
||||||
protected boolean needsAnimation() {
|
protected boolean needsAnimation() {
|
||||||
return true;
|
return true;
|
||||||
@@ -11,4 +17,30 @@ public abstract class ClientPass <S extends RepositoryServer,T> extends Pass<T>
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
protected abstract S getServer();
|
protected abstract S getServer();
|
||||||
|
protected boolean SendRequest(ServerCode code_in, String arg_in, Serializable object_in, int delay){
|
||||||
|
request = null;
|
||||||
|
request = new RepositoryPass(getServer()) {
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return code_in.getDescription();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected int getTimeout() {
|
||||||
|
return delay;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void ServerAction() throws Exception {
|
||||||
|
Command(new ServerExchangeUnit_2021(code_in, arg_in,object_in));
|
||||||
|
target = server_response.object;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected boolean validate() {
|
||||||
|
return Log.isEmpty();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return request.Do();
|
||||||
|
}
|
||||||
|
protected boolean SendRequest(ServerCode code_in,String arg_in, Serializable object_in){
|
||||||
|
return SendRequest(code_in,arg_in, object_in, Global.properties.SocketTimeout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ public abstract class Component extends DBObject implements Loggable {
|
|||||||
//--
|
//--
|
||||||
public String code = "";
|
public String code = "";
|
||||||
public String actual_code = "";
|
public String actual_code = "";
|
||||||
public boolean needs_update_minimal_version = false;
|
|
||||||
VFileChooser fileChooser = null; ///для ручной установки.
|
VFileChooser fileChooser = null; ///для ручной установки.
|
||||||
private ComponentState state;
|
private ComponentState state;
|
||||||
public abstract ComponentType getComponentType();
|
public abstract ComponentType getComponentType();
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package _VisualDVM.Repository.Component.Json;
|
||||||
|
import Common.Utils.Utils_;
|
||||||
|
import _VisualDVM.Repository.Component.Component;
|
||||||
|
import _VisualDVM.Repository.Component.ComponentType;
|
||||||
|
import com.google.gson.annotations.Expose;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
public class ComponentPublicationInfoJson implements Serializable {
|
||||||
|
@Expose
|
||||||
|
public ComponentType componentType = ComponentType.Undefined;
|
||||||
|
@Expose
|
||||||
|
public String fileName = "";
|
||||||
|
@Expose
|
||||||
|
public byte[] packedFile = null;
|
||||||
|
@Expose
|
||||||
|
public String versionText = "";
|
||||||
|
@Expose
|
||||||
|
public String changeRecord = "";
|
||||||
|
@Expose
|
||||||
|
public boolean needsUpdateMinimalVersion = false;
|
||||||
|
public ComponentPublicationInfoJson(Component component) throws Exception{
|
||||||
|
componentType = component.getComponentType();
|
||||||
|
fileName = component.getFileName();
|
||||||
|
packedFile = Utils_.fileToBytes(component.getFile());
|
||||||
|
versionText = component.getVersionText();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -370,37 +370,12 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
public void Ping() {
|
public void Ping() {
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
}
|
}
|
||||||
//---команды со стороны клиента.
|
|
||||||
public Object ClientRequest(ServerCode code_in, String arg_in, Serializable object_in, int delay) throws Exception {
|
|
||||||
RepositoryPass pass = new RepositoryPass(this) {
|
|
||||||
@Override
|
|
||||||
public String getDescription() {
|
|
||||||
return code_in.getDescription();
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected int getTimeout() {
|
|
||||||
return delay;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected void ServerAction() throws Exception {
|
|
||||||
Command(new ServerExchangeUnit_2021(code_in, arg_in,object_in));
|
|
||||||
target = server_response.object;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
protected boolean validate() {
|
|
||||||
return Log.isEmpty();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (pass.Do())
|
|
||||||
return pass.target;
|
|
||||||
throw new PassException(Utils_.Brackets(new Date().toString()) + " Ошибка взаимодействия с сервером " + code_in);
|
|
||||||
}
|
|
||||||
public Object ClientRequest(ServerCode code_in,String arg_in, Serializable object_in)throws Exception {
|
|
||||||
return ClientRequest(code_in,arg_in,object_in, Global.properties.SocketTimeout);
|
|
||||||
}
|
|
||||||
//---
|
//---
|
||||||
|
/*
|
||||||
public <T extends DBObject> T getActual(T object_in, Class<T> object_class)throws Exception{
|
public <T extends DBObject> T getActual(T object_in, Class<T> object_class)throws Exception{
|
||||||
return (T) ClientRequest(ServerCode.GetObjectCopyByPK, "",
|
return (T) ClientRequest(ServerCode.GetObjectCopyByPK, "",
|
||||||
new Pair<>(object_class, object_in.getPK()));
|
new Pair<>(object_class, object_in.getPK()));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import _VisualDVM.Repository.BugReport.BugReport;
|
|||||||
import _VisualDVM.Repository.BugReport.Json.BugReportAdditionJson;
|
import _VisualDVM.Repository.BugReport.Json.BugReportAdditionJson;
|
||||||
import _VisualDVM.Repository.BugReportsDatabase;
|
import _VisualDVM.Repository.BugReportsDatabase;
|
||||||
import _VisualDVM.Repository.Component.ComponentType;
|
import _VisualDVM.Repository.Component.ComponentType;
|
||||||
|
import _VisualDVM.Repository.Component.Json.ComponentPublicationInfoJson;
|
||||||
import _VisualDVM.Repository.Component.Json.ComponentVersionsInfoJson;
|
import _VisualDVM.Repository.Component.Json.ComponentVersionsInfoJson;
|
||||||
import _VisualDVM.Repository.EmailMessage;
|
import _VisualDVM.Repository.EmailMessage;
|
||||||
import _VisualDVM.Repository.RepositoryServer;
|
import _VisualDVM.Repository.RepositoryServer;
|
||||||
@@ -238,7 +239,10 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
|
|||||||
response.object = new Vector<>();
|
response.object = new Vector<>();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PublishComponent:
|
case UpdateComponent:
|
||||||
|
UpdateComponent();
|
||||||
|
break;
|
||||||
|
case PublishComponent: //todo устарело.
|
||||||
String[] packed = request.arg.split("\n");
|
String[] packed = request.arg.split("\n");
|
||||||
String sComponentType = packed[0];
|
String sComponentType = packed[0];
|
||||||
String componentFileName = packed[1];
|
String componentFileName = packed[1];
|
||||||
@@ -280,7 +284,7 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
|
|||||||
//-
|
//-
|
||||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
break;
|
break;
|
||||||
case UpdateComponentMinimalVersion:
|
case UpdateComponentMinimalVersion: //todo устарело
|
||||||
String[] packed_ = request.arg.split("\n");
|
String[] packed_ = request.arg.split("\n");
|
||||||
String sComponentType_ = packed_[0];
|
String sComponentType_ = packed_[0];
|
||||||
String sComponentMinimalVersion = packed_[1];
|
String sComponentMinimalVersion = packed_[1];
|
||||||
@@ -452,4 +456,51 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
|
|||||||
protected void startAdditionalThreads() {
|
protected void startAdditionalThreads() {
|
||||||
backUp.start();
|
backUp.start();
|
||||||
}
|
}
|
||||||
|
//-
|
||||||
|
private void UpdateComponent() throws Exception {
|
||||||
|
ComponentPublicationInfoJson info = (ComponentPublicationInfoJson) request.object;
|
||||||
|
Print("Опубликовать компонент " + info.componentType);
|
||||||
|
File componentHome = Utils_.getFile(Utils_.getHomePath(),"Components", info.componentType.toString());
|
||||||
|
File componentFile =new File(componentHome, info.fileName);
|
||||||
|
File versionFile = new File(componentHome, "version.txt");
|
||||||
|
File backupsFolder = new File(componentHome, "Backups");
|
||||||
|
//0 архивация старой версии, если она есть.
|
||||||
|
if (componentFile.exists()) {
|
||||||
|
String versionText = "";
|
||||||
|
if (versionFile.exists())
|
||||||
|
versionText = Utils.ReadAllText(versionFile);
|
||||||
|
//---->>
|
||||||
|
Utils_.CheckDirectory(backupsFolder);
|
||||||
|
Utils.keepNewFiles(backupsFolder, Global.componentsServerProperties.ComponentsBackUpsCount);
|
||||||
|
//-->>
|
||||||
|
File backupFile = new File(backupsFolder, info.componentType + "_" + versionText);
|
||||||
|
if (backupFile.exists())
|
||||||
|
Utils_.forceDeleteWithCheck(backupFile);
|
||||||
|
FileUtils.moveFile(componentFile, backupFile);
|
||||||
|
}
|
||||||
|
//1 распаковка компонента
|
||||||
|
Utils_.bytesToFile((byte[]) info.packedFile, componentFile);
|
||||||
|
//2 запись версии компонента
|
||||||
|
FileUtils.writeStringToFile(versionFile, info.versionText);
|
||||||
|
//3 запись в журнал компонента
|
||||||
|
File changesLog = new File(componentHome, "changes.txt");
|
||||||
|
FileWriter writer = new FileWriter(changesLog.getAbsolutePath(), true);
|
||||||
|
BufferedWriter bufferWriter = new BufferedWriter(writer);
|
||||||
|
bufferWriter.write(info.changeRecord);
|
||||||
|
bufferWriter.close();
|
||||||
|
//-
|
||||||
|
if (info.needsUpdateMinimalVersion){
|
||||||
|
Print("Поднять минимальную версию компонента " + info.componentType);
|
||||||
|
File minimal_versionFile = new File(componentHome, "minimal_version.txt");
|
||||||
|
FileUtils.writeStringToFile(minimal_versionFile, info.versionText);
|
||||||
|
//-
|
||||||
|
//3 запись в журнал компонента
|
||||||
|
FileWriter writer_ = new FileWriter(changesLog, true);
|
||||||
|
BufferedWriter bufferWriter_ = new BufferedWriter(writer_);
|
||||||
|
bufferWriter_.write("Минимальная версия поднята до " + info.versionText + "\n");
|
||||||
|
bufferWriter_.close();
|
||||||
|
}
|
||||||
|
//-
|
||||||
|
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ public enum ServerCode {
|
|||||||
ReceiveBugReportsDatabase,
|
ReceiveBugReportsDatabase,
|
||||||
ReceiveTestsDatabase,
|
ReceiveTestsDatabase,
|
||||||
ReceiveTestsTasksDatabase,
|
ReceiveTestsTasksDatabase,
|
||||||
PublishComponent,
|
PublishComponent, //todo удалить устарел
|
||||||
|
UpdateComponent,
|
||||||
UpdateComponentMinimalVersion, //возможно потом, слить воедино с публикацией?
|
UpdateComponentMinimalVersion, //возможно потом, слить воедино с публикацией?
|
||||||
ReceiveComponent,
|
ReceiveComponent,
|
||||||
ReceiveBugReport,
|
ReceiveBugReport,
|
||||||
@@ -96,6 +97,10 @@ public enum ServerCode {
|
|||||||
switch (this){
|
switch (this){
|
||||||
case GetComponentsVersionsInfo:
|
case GetComponentsVersionsInfo:
|
||||||
return "Получить версии компонент";
|
return "Получить версии компонент";
|
||||||
|
case UpdateComponent:
|
||||||
|
return "Опубликовать компонент";
|
||||||
|
case UpdateComponentMinimalVersion:
|
||||||
|
return "Поднять минимальную версию компонента";
|
||||||
default:
|
default:
|
||||||
return this.toString();
|
return this.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user