diff --git a/runtime-api/pom.xml b/runtime-api/pom.xml index baa4d415fa7f125dd4de06700db58e7e461bdfb4..e23555f43fcfb81af1ab24908f3c36dc51dba0f5 100644 --- a/runtime-api/pom.xml +++ b/runtime-api/pom.xml @@ -23,9 +23,15 @@ com.inspur.edp ${custom.version} + 4.0.0 web-jitengine-runtimebuild-api - + + + com.inspur.edp + web-jitengine-common + + diff --git a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildParameter.java b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildParameter.java index 44e0497762c47afad765bb26a8dd230f46a3cacb..0974b2e554a6d4f96558d395730787134bef1842 100644 --- a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildParameter.java +++ b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildParameter.java @@ -16,6 +16,8 @@ package com.inspur.edp.web.jitruntimebuild.api.entity; +import com.inspur.edp.web.common.JITEngineConstants; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -70,13 +72,13 @@ public class JitBuildParameter { * webdev 文件目录名称 默认为webdev * 该参数默认不需要任何更改,仅当需要调整存放目录时进行调整 */ - private String webDevPathName = "webdev"; + private String webDevPathName = JITEngineConstants.WebDevPathName; /** * node_modules 路径名称 * 该参数默认不需要任何更改,仅当node_modules文件夹名称发生变化时进行调整。 */ - private String node_ModulesName = "node_modules"; + private String node_ModulesName = JITEngineConstants.Node_ModulesPathName; /** * 生成表单ts源代码文件目录 diff --git a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildRefMetadata.java b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildRefMetadata.java index 0d9ff9fbd7357731544bd46ea85683b0a4d622b8..2a47cbfa0eb9a2ea98b213e092f9299d80e4be41 100644 --- a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildRefMetadata.java +++ b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitBuildRefMetadata.java @@ -16,6 +16,8 @@ package com.inspur.edp.web.jitruntimebuild.api.entity; +import com.inspur.edp.web.common.metadata.MetadataTypeEnum; + /** * description: * @@ -31,7 +33,7 @@ public class JitBuildRefMetadata { /** * 元数据类型 */ - private JitMetadataTypeEnum metadataType; + private MetadataTypeEnum metadataType; public String getContent() { return content; @@ -41,11 +43,11 @@ public class JitBuildRefMetadata { this.content = content; } - public JitMetadataTypeEnum getMetadataType() { + public MetadataTypeEnum getMetadataType() { return metadataType; } - public void setMetadataType(JitMetadataTypeEnum metadataType) { + public void setMetadataType(MetadataTypeEnum metadataType) { this.metadataType = metadataType; } diff --git a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitMetadataTypeEnum.java b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitMetadataTypeEnum.java deleted file mode 100644 index 0b46e283ee22450138023fd87714d80c01c513e5..0000000000000000000000000000000000000000 --- a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitMetadataTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.inspur.edp.web.jitruntimebuild.api.entity; - -/** - * 运行时依赖元数据类型 - * @author guozhiqi - */ -public enum JitMetadataTypeEnum { - /** - * 表单元数据 - */ - Frm, - /** - * eapi 元数据 - */ - Eapi, - /** - * 资源元数据 - */ - Resource, - /** - * 状态机元数据 - */ - StateMachine, - /** - * 命令元数据 - */ - Command, - /** - * 页面流 - */ - Route -} diff --git a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitRuntimeConstant.java b/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitRuntimeConstant.java deleted file mode 100644 index d8b5f055a5bd01e79347f35c058fe07cc1d18c34..0000000000000000000000000000000000000000 --- a/runtime-api/src/main/java/com/inspur/edp/web/jitruntimebuild/api/entity/JitRuntimeConstant.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.inspur.edp.web.jitruntimebuild.api.entity; - -/** - * jit运行时定制常量参数 - */ -public class JitRuntimeConstant { - -} diff --git a/runtime-core/pom.xml b/runtime-core/pom.xml index f3a78724144a9d8ffeee53481783ced6a3e3e64a..e709803c4464223b6bf9e90b6e2737e6de151142 100644 --- a/runtime-core/pom.xml +++ b/runtime-core/pom.xml @@ -76,5 +76,6 @@ com.inspur.edp web-sourcecode-metadata + diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/builddeploy/BuildDeployManager.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/builddeploy/BuildDeployManager.java index bbc78e758af27377218382ad3a40b637fae93aec..d7052e61b0811fc5afb06273d9b7e193705ffa8e 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/builddeploy/BuildDeployManager.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/builddeploy/BuildDeployManager.java @@ -16,15 +16,16 @@ package com.inspur.edp.web.jitruntimebuild.core.builddeploy; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.jitruntimebuild.api.entity.DeployTargetEnum; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; import com.inspur.edp.web.jitruntimebuild.core.utility.JitBuildUtility; -import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConstant; import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.PublishScriptRequest; +import com.inspur.edp.web.jitruntimebuild.scriptcache.api.service.ScriptCacheService; import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerPathGenerator; -import com.inspur.edp.web.jitruntimebuild.scriptcache.service.ScriptCacheServiceImpl; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.tenancy.core.context.MultiTenantContextHolder; /** @@ -43,33 +44,11 @@ public class BuildDeployManager { */ public static void deployForm(JitBuildParameter buildParameter) { WebLogger.Instance.info("begin deploy form, the formCode is " + buildParameter.getFormCode(), CurrentClassName); - String strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + - "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + - FormJsonFileSuffixConstant.DeployWebPathName + FileUtility.DIRECTORY_SEPARATOR_CHAR - + buildParameter.getBoCode() + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getFormName() + JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); - if (buildParameter.isMobileApp()) { - strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + - "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + - "mob" + FileUtility.DIRECTORY_SEPARATOR_CHAR - + buildParameter.getBoCode() + JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); - } - - if (buildParameter.isBabelCompile()) { + String strDeployPath = getDeployPath(buildParameter); - strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + - "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + - "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getBoCode() + "forbabelruntime" + FileUtility.DIRECTORY_SEPARATOR_CHAR + - buildParameter.getFormName() + - JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); - } String strBaseSourcePath = buildParameter.getBuildAppPath() + (FileUtility.DIRECTORY_SEPARATOR_CHAR + - FormJsonFileSuffixConstant.DistRollupPathName + FileUtility.DIRECTORY_SEPARATOR_CHAR + + JITEngineConstants.DistRollupPathName + FileUtility.DIRECTORY_SEPARATOR_CHAR + buildParameter.getBoCode()).toLowerCase(); if (buildParameter.getDeployTargetEnum() == DeployTargetEnum.Form) { @@ -84,8 +63,8 @@ public class BuildDeployManager { WebLogger.Instance.info("deploy form,the source path is " + sourcePath + " , target path is " + strDeployPath, CurrentClassName); // 部署version.json 文件 - String strSourceVersionPath = strBaseSourcePath + FileUtility.DIRECTORY_SEPARATOR_CHAR + "version.json"; - String strTargetVersionPath = strDeployPath + FileUtility.DIRECTORY_SEPARATOR_CHAR + "version.json"; + String strSourceVersionPath = FileUtility.combine(strBaseSourcePath, "version.json"); + String strTargetVersionPath = FileUtility.combine(strDeployPath, "version.json"); if (FileUtility.exists(strSourceVersionPath)) { FileUtility.copyFile(strSourceVersionPath, strTargetVersionPath, true); WebLogger.Instance.info("deploy version file success,the source file path is " + strSourceVersionPath + ",the target file path is " + strTargetVersionPath, CurrentClassName); @@ -115,8 +94,42 @@ public class BuildDeployManager { publishScript(buildParameter, strDeployPath); - WebLogger.Instance.info("deploy project success,the deploy path is " + strDeployPath,CurrentClassName); + WebLogger.Instance.info("deploy project success,the deploy path is " + strDeployPath, CurrentClassName); + } + } + + /** + * 获取部署路径 + * + * @param buildParameter + * @return + */ + private static String getDeployPath(JitBuildParameter buildParameter) { + String strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + + "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + + JITEngineConstants.DeployWebPathName + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getBoCode() + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getFormName() + JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); + if (buildParameter.isMobileApp()) { + strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + + "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + + "mob" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getBoCode() + JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); + } + + if (buildParameter.isBabelCompile()) { + + strDeployPath = FileUtility.getCurrentWorkPath(buildParameter.isInUpgradeTool()) + (FileUtility.DIRECTORY_SEPARATOR_CHAR + + "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getServiceUnitPath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + + "web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getBoCode() + "forbabelruntime" + FileUtility.DIRECTORY_SEPARATOR_CHAR + + buildParameter.getFormName() + + JitBuildUtility.getExtraPath(buildParameter.getExtraFormPath())).toLowerCase(); } + return strDeployPath; } /** @@ -128,10 +141,10 @@ public class BuildDeployManager { private static void publishScript(JitBuildParameter buildParameter, String strDeployPath) { WebLogger.Instance.info("execute form script cache ", CurrentClassName); try { - ScriptCacheServiceImpl scriptCacheServiceImpl = new ScriptCacheServiceImpl(); PublishScriptRequest request = getPublishScriptRequest(buildParameter, strDeployPath); - scriptCacheServiceImpl.publishScriptWithDirectory(request); + ScriptCacheService scriptCacheService = SpringBeanUtils.getBean(ScriptCacheService.class); + scriptCacheService.publishScriptWithDirectory(request); WebLogger.Instance.info("execute form script cache completely!!!", CurrentClassName); } catch (Exception e) { WebLogger.Instance.error(e); diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/buildparametergenerator/JitBuildParameterGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/buildparametergenerator/JitBuildParameterGenerator.java index b2d3432434fe1e5b47dd4c3311f007c48c8b01b2..2a5d2093a7e239f4cd84f987a6bb4ca6d41569b4 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/buildparametergenerator/JitBuildParameterGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/buildparametergenerator/JitBuildParameterGenerator.java @@ -16,6 +16,7 @@ package com.inspur.edp.web.jitruntimebuild.core.buildparametergenerator; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; @@ -104,9 +105,9 @@ public class JitBuildParameterGenerator { // 如果su路径不为空 if (!StringUtility.isNullOrEmpty(buildParameter.getServiceUnitPath())) { String serviceUnitPath = buildParameter.getServiceUnitPath(); - if (!serviceUnitPath.startsWith(FormJsonFileSuffixConstant.defaultSUBasePath)) { + if (!serviceUnitPath.startsWith(JITEngineConstants.DefaultSUBasePath)) { // 在serviceUnit 路径前面追加apps - serviceUnitPath = FormJsonFileSuffixConstant.defaultSUBasePath + FileUtility.DIRECTORY_SEPARATOR_CHAR + serviceUnitPath; + serviceUnitPath = JITEngineConstants.DefaultSUBasePath + FileUtility.DIRECTORY_SEPARATOR_CHAR + serviceUnitPath; buildParameter.setServiceUnitPath(serviceUnitPath.toLowerCase()); } } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/constant/FormJsonFileSuffixConstant.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/constant/FormJsonFileSuffixConstant.java index 0c65a323bdd95b2490a67b679bf4241e563f987c..3f5c5d2427d8c307678be050bdc49f86ece26c4e 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/constant/FormJsonFileSuffixConstant.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/constant/FormJsonFileSuffixConstant.java @@ -16,8 +16,6 @@ package com.inspur.edp.web.jitruntimebuild.core.constant; -import com.inspur.edp.web.common.io.FileUtility; - /** * description: * @@ -26,60 +24,15 @@ import com.inspur.edp.web.common.io.FileUtility; */ public class FormJsonFileSuffixConstant { - /** - * 表单文件后缀 - */ - public static final String FrmJsonFile = ".json"; - - /** - * 命令json文件后缀 .command.json - */ - public static final String CommandJsonFile = ".command.json"; - - /** - * eapi json文件后缀.eapi.json - */ - public static final String EapiJsonFile = ".eapi.json"; - - /** - * 资源文件后缀 .resource.json - */ - public static final String ResourceJsonFile = ".resource.json"; - - /** - * 状态机文件后缀 .sm.json - */ - public static final String StateMachineJsonFile = ".sm.json"; - - /** - * 表单文件后缀 .frm - */ - public static final String FrmSuffix = ".frm"; - /** * 默认的运行时工程路径名称 转换成小写形式 */ - public static final String defaultProjectPathName = ("web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + "runtime" + FileUtility.DIRECTORY_SEPARATOR_CHAR + "projects" + FileUtility.DIRECTORY_SEPARATOR_CHAR + "rtc").toLowerCase(); + public static final String defaultProjectPathName = "web/runtime/projects/rtc"; /** * 默认的运行时工程路径名称 转换成小写形式 */ - public static final String defaultProjectPathNameWithoutRtc = ("web" + FileUtility.DIRECTORY_SEPARATOR_CHAR + "runtime" + FileUtility.DIRECTORY_SEPARATOR_CHAR + "projects").toLowerCase(); - - /** - * su运行的根目录 apps - */ - public static final String defaultSUBasePath = "apps"; - - /** - * 生成脚本文件目录名称 dist-rollup - */ - public static final String DistRollupPathName = "dist-rollup"; - - /** - * 部署目录中web - */ - public static final String DeployWebPathName = "web"; + public static final String defaultProjectPathNameWithoutRtc = "web/runtime/projects"; /** * 维度信息为空时,设置的默认维度信息 diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/AbstractFormJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/AbstractFormJsonFileGenerator.java index 702853d53c738b54d9908e18bfe772e1c28b3f20..f9f651122dd8ad958ca304ef9a34558ee67331e5 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/AbstractFormJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/AbstractFormJsonFileGenerator.java @@ -25,31 +25,25 @@ import com.inspur.edp.web.common.io.FileUtility; * @author Noah Guo * @date 2020/04/29 */ -public abstract class AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { +abstract class AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - private ExecuteEnvironment executeEnvironment; - private boolean isUpdradeTool=false; + private final ExecuteEnvironment executeEnvironment; + private boolean isUpgradeTool = false; - protected AbstractFormJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + protected AbstractFormJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { this.executeEnvironment = executeEnvironment; - this.isUpdradeTool=isUpdradeTool; + this.isUpgradeTool = isUpgradeTool; } - public boolean isUpdradeTool() { - return isUpdradeTool; + protected boolean isUpgradeTool() { + return isUpgradeTool; } - - public ExecuteEnvironment getExecuteEnvironment() { + protected ExecuteEnvironment getExecuteEnvironment() { return this.executeEnvironment; } - public void setExecuteEnvironment(ExecuteEnvironment value) { - this.executeEnvironment = value; - } - - /** * 生成文件全称 * diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/CommandJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/CommandJsonFileGenerator.java index 038d15be612c61697908eaf99db95f39d57b11e9..92a98c9be404274d73dd0cb9a4a54b4ab00bd437 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/CommandJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/CommandJsonFileGenerator.java @@ -31,8 +31,8 @@ import com.inspur.edp.web.common.utility.StringUtility; */ class CommandJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - public CommandJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); + CommandJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + super(executeEnvironment, isUpgradeTool); } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/EapiJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/EapiJsonFileGenerator.java index 4f2602e5a13b7f2c79bc58ecb22cfd3e702744f0..26a0d9c5a10ba2ae18c9905d911941969d5b8d99 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/EapiJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/EapiJsonFileGenerator.java @@ -16,9 +16,9 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.utility.StringUtility; -import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConstant; /** * description: @@ -26,9 +26,9 @@ import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConsta * @author Noah Guo * @date 2020/04/29 */ -public class EapiJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - public EapiJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment,isUpdradeTool); +class EapiJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { + EapiJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + super(executeEnvironment, isUpgradeTool); } @Override @@ -38,9 +38,9 @@ public class EapiJsonFileGenerator extends AbstractFormJsonFileGenerator impleme } //eapi 内容需要转换为数组形式 当前传递过来的是单个对象 组装成数组形式 - content="["+content+"]"; + content = "[" + content + "]"; - String eapiJsonFileName = this.generateFileName(formName, FormJsonFileSuffixConstant.FrmSuffix + FormJsonFileSuffixConstant.EapiJsonFile); + String eapiJsonFileName = this.generateFileName(formName, JITEngineConstants.FrmSuffix + JITEngineConstants.EapiJsonFile); this.writeFile(basePath, eapiJsonFileName, content); } } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormJsonFileManager.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormJsonFileManager.java index ae3d161f6b4ba75691fc64c58fbbdbbec8fe3915..959023760c77714795b42ec94f6f9a19b7f4fe3f 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormJsonFileManager.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormJsonFileManager.java @@ -18,15 +18,15 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; import java.util.concurrent.atomic.AtomicReference; /** - * description: + * description: 表单json文件构造 * * @author Noah Guo * @date 2020/04/29 @@ -43,10 +43,10 @@ public class FormJsonFileManager { if (ListUtility.isNotEmpty(buildParameter.getBuildRefMetadataList())) { buildParameter.getBuildRefMetadataList().forEach(jitBuildRefMetadata -> { if (!StringUtility.isNullOrEmpty(jitBuildRefMetadata.getContent())) { - JitMetadataTypeEnum metadataTypeEnum = jitBuildRefMetadata.getMetadataType(); + MetadataTypeEnum metadataTypeEnum = jitBuildRefMetadata.getMetadataType(); String strBasePath = webDevPath; // 针对命令构件 主表单需要放置于对应的moduleCode目录下 - if (metadataTypeEnum == JitMetadataTypeEnum.Command) { + if (metadataTypeEnum == MetadataTypeEnum.Command) { AtomicReference formModuleCode = FormModuleWithBuildParameterManager.getFormModuleCodeAtomicReference(buildParameter); if (formModuleCode != null && formModuleCode.get() != null) { strBasePath = webDevPath + "/services/" + formModuleCode.get().toLowerCase() + "/services/"; diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameter.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameter.java deleted file mode 100644 index 163fa5084c8dd942a4354713d77e8cfb153759bf..0000000000000000000000000000000000000000 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameter.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; - -import com.inspur.edp.web.common.serialize.SerializeUtility; -import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; - -import java.util.concurrent.atomic.AtomicReference; - -/** - * description: - * - * @author Noah Guo - * @date 2020/07/29 - */ -public class FormModuleWithBuildParameter { - - /** - * 根据编译参数获取对应的表单 moduleCode - * @param buildParameter - * @return - */ - public static AtomicReference getFormModuleCodeAtomicReference(JitBuildParameter buildParameter) { - AtomicReference formModuleCode = new AtomicReference<>(); - buildParameter.getBuildRefMetadataList().forEach((item) -> { - if (item.getMetadataType() == JitMetadataTypeEnum.Frm) { - FormRuntimeMetadataEntity formRuntimeMetadataEntity = SerializeUtility.getInstance().deserialize(item.getContent(), FormRuntimeMetadataEntity.class); - if (formRuntimeMetadataEntity != null) { - FormDOM visualDom = SerializeUtility.getInstance().deserialize(formRuntimeMetadataEntity.getContents().toString(), FormDOM.class); - if (visualDom != null) { - formModuleCode.set(visualDom.getModule().getCode()); - } - } - } - }); - return formModuleCode; - } -} diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameterManager.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameterManager.java index b8b5004ef434836aedf9b7ac126c7a85f9b6df4b..551ac39b83a8929313c1aebd677d962959038c60 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameterManager.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormModuleWithBuildParameterManager.java @@ -16,10 +16,10 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; +import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; import java.util.concurrent.atomic.AtomicReference; @@ -33,13 +33,14 @@ public class FormModuleWithBuildParameterManager { /** * 根据编译参数获取对应的表单 moduleCode + * * @param buildParameter * @return */ public static AtomicReference getFormModuleCodeAtomicReference(JitBuildParameter buildParameter) { AtomicReference formModuleCode = new AtomicReference<>(); buildParameter.getBuildRefMetadataList().forEach((item) -> { - if (item.getMetadataType() == JitMetadataTypeEnum.Frm) { + if (item.getMetadataType() == MetadataTypeEnum.Frm) { FormRuntimeMetadataEntity formRuntimeMetadataEntity = SerializeUtility.getInstance().deserialize(item.getContent(), FormRuntimeMetadataEntity.class); if (formRuntimeMetadataEntity != null) { FormDOM visualDom = SerializeUtility.getInstance().deserialize(formRuntimeMetadataEntity.getContents().toString(), FormDOM.class); diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRouteJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRouteJsonFileGenerator.java index 5455230ba89dea7be523bd71918b7b93c5f4a35a..b2ca66be94de70a30d32a13be6c71beb9b6af803 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRouteJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRouteJsonFileGenerator.java @@ -33,9 +33,9 @@ import java.util.concurrent.atomic.AtomicReference; * @author Noah Guo * @date 2020/04/29 */ -public class FormRouteJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { +class FormRouteJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - public FormRouteJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + FormRouteJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { super(executeEnvironment, isUpdradeTool); } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRuntimeMetadataEntity.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRuntimeMetadataEntity.java index 471675f460157f1a1b29ca61ff1669ff0786dba1..6e899231ffd248ed4cd925004bfd82158bdf0185 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRuntimeMetadataEntity.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FormRuntimeMetadataEntity.java @@ -21,8 +21,8 @@ import com.fasterxml.jackson.databind.JsonNode; /** * 运行时表单元数据 */ -public class FormRuntimeMetadataEntity { - private String Id; +class FormRuntimeMetadataEntity { + private String Id; public String getId() { return Id; @@ -56,7 +56,7 @@ public class FormRuntimeMetadataEntity { Contents = contents; } - private String Code; - private String Name; - private JsonNode Contents; + private String Code; + private String Name; + private JsonNode Contents; } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FrmJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FrmJsonFileGenerator.java index effad1533f0ee308d6a0267eb6ce6e2f3aeed70d..85e809ac5f314c7b215ad4677ce0bc6e7d30cfec 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FrmJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/FrmJsonFileGenerator.java @@ -18,6 +18,7 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; import com.inspur.edp.i18n.resource.api.metadata.ResourceMetadata; import com.inspur.edp.lcm.metadata.api.entity.*; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; @@ -33,8 +34,6 @@ import com.inspur.edp.web.formmetadata.metadataanalysis.form.AnalysisExternalCom import com.inspur.edp.web.jitengine.expressions.*; import com.inspur.edp.web.jitengine.expressions.utility.ExpressionUtility; -import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConstant; - import java.util.ArrayList; import java.util.HashMap; @@ -54,7 +53,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen @Override public void generate(String basePath, String formName, String content) { - String frmJsonFileName = this.generateFileName(formName, FormJsonFileSuffixConstant.FrmSuffix + FormJsonFileSuffixConstant.FrmJsonFile); + String frmJsonFileName = this.generateFileName(formName, JITEngineConstants.FrmSuffix + JITEngineConstants.FrmJsonFile); FormRuntimeMetadataEntity formRuntimeMetadataEntity = SerializeUtility.getInstance().deserialize(content, FormRuntimeMetadataEntity.class); if (formRuntimeMetadataEntity != null) { this.writeFile(basePath, frmJsonFileName, formRuntimeMetadataEntity.getContents().toString()); @@ -104,7 +103,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen WebLogger.Instance.info("generate command json file", FrmJsonFileGenerator.class.getName()); // 反序列化表单元数据 FormDOM json = SerializeUtility.getInstance().deserialize(content, FormDOM.class); - CommandsAnalysis commandsAnalysis = new CommandsAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + CommandsAnalysis commandsAnalysis = new CommandsAnalysis(this.getExecuteEnvironment(), this.isUpgradeTool()); HashMap projectCmpList = new HashMap<>(); try { fileName = fileName + ".frm"; @@ -133,7 +132,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen getterMetadataInfo.setId(MetadataReference.getDependentMetadata().getId()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.Resource); return getterMetadataInfo; - }, null, this.getExecuteEnvironment(), this.isUpdradeTool()); + }, null, this.getExecuteEnvironment(), this.isUpgradeTool()); ResourceMetadata resourceMetadata = (refMetadata == null || refMetadata.getContent() == null) ? null : ((ResourceMetadata) refMetadata.getContent()); I18nResource item = ConvertToI18nResource(resourceMetadata, resourceMetadata.getOriginalLanguage()); resourceList.add(item); @@ -143,7 +142,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen if (resourceList.size() > 0) { resourceList.forEach(item -> { I18nResourceItemCollection resourceItemCollection = item.getStringResources(); - if (resourceItemCollection == null || resourceItemCollection.size() <= 0) { + if (resourceItemCollection == null || resourceItemCollection.size() == 0) { return; } @@ -173,7 +172,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen resouceItemsStringBuilder.append("}"); // 将生成的结构持久化到磁盘 - FileUtility.writeFile(basePath, gspMetadata.getHeader().getFileName().toLowerCase() + ".resource.json", resouceItemsStringBuilder.toString()); + FileUtility.writeFile(basePath, gspMetadata.getHeader().getFileName().toLowerCase() + JITEngineConstants.ResourceJsonFile, resouceItemsStringBuilder.toString()); }); } @@ -215,7 +214,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen if (json != null && json.getModule() != null && json.getModule().getExternalComponents() != null && json.getModule().getExternalComponents().size() > 0) { for (HashMap item : json.getModule().getExternalComponents()) { - FormAnalysis formAnalysis = new FormAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + FormAnalysis formAnalysis = new FormAnalysis(this.getExecuteEnvironment(), this.isUpgradeTool()); AnalysisExternalComponentResult externalVisualDom; try { @@ -255,7 +254,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen getterMetadataInfo.setCode(json.getModule().getCode()); getterMetadataInfo.setName(json.getModule().getName()); return getterMetadataInfo; - }, this.getExecuteEnvironment(), this.isUpdradeTool()); + }, this.getExecuteEnvironment(), this.isUpgradeTool()); String[] params = {externalVisualDom.getExternalComponentPath(), externalVisualDom.getJson().getModule().getCode()}; @@ -293,20 +292,20 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen String formMetadataName = formMetadata.getHeader().getFileName(); // 临时注释,方便调试 // Step 2: Resolve StateMachine, and Save StateMachine - StateMachineAnalysis stateMachineAnalysis = new StateMachineAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + StateMachineAnalysis stateMachineAnalysis = new StateMachineAnalysis(this.getExecuteEnvironment(), this.isUpgradeTool()); stateMachineAnalysis.resolveStateMachine(formDom, formMetadataName, targetStorageBasePath, relativePath); // // // Step 3: Resolve Command - CommandsAnalysis commandsAnalysis = new CommandsAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + CommandsAnalysis commandsAnalysis = new CommandsAnalysis(this.getExecuteEnvironment(), this.isUpgradeTool()); commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(formMetadata, formDom), formMetadataName, targetStorageBasePath, projectCmpList); // // // Step 4: Resolve eapi - EapiAnalysis eapiAnalysis = new EapiAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + EapiAnalysis eapiAnalysis = new EapiAnalysis(this.getExecuteEnvironment(), this.isUpgradeTool()); eapiAnalysis.resolveEapi(formDom, formMetadataName, targetStorageBasePath, formMetadata.getHeader().getNameSpace(), relativePath); // // // Step 5: Resolve command service - CommandServiceAnalysis.resolveCommandService(formDom, relativePath, formServiceBasePath, webDevPath, this.getExecuteEnvironment(), this.isUpdradeTool()); + CommandServiceAnalysis.resolveCommandService(formDom, relativePath, formServiceBasePath, webDevPath, this.getExecuteEnvironment(), this.isUpgradeTool()); // 构造对应的国际化资源项 //GenerateResourceManager.generateI18nResource(formMetadata, i18nResourceList, i18nResourceKeyPrefix,"en"); diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorFactory.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorFactory.java index 5ab428ba0587b8498534d9bc8a0b274a3b96f3c5..4aa365698c66044e2dad3bb43ad3edd22726d672 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorFactory.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorFactory.java @@ -19,7 +19,7 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.logger.WebLogger; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; +import com.inspur.edp.web.common.metadata.MetadataTypeEnum; /** * description: @@ -28,7 +28,7 @@ import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; * @date 2020/04/29 */ public class JsonFileGeneratorFactory { - public static JsonFileGeneratorInterface create(JitMetadataTypeEnum metadataType, ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + public static JsonFileGeneratorInterface create(MetadataTypeEnum metadataType, ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { JsonFileGeneratorInterface jsonFileGenerator = null; switch (metadataType) { case Frm: diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorInterface.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorInterface.java index 78e0a85f93d4eebbefc9a0abd3b6b55f530ace35..40ffd9713401b9b6cbe3ef444ffc4f6f911e732a 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorInterface.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/JsonFileGeneratorInterface.java @@ -16,6 +16,10 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; +/** + * 表单json文件构造 接口 + * @author noah + */ public interface JsonFileGeneratorInterface { /** * json文件生成接口方法 diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/ResourceJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/ResourceJsonFileGenerator.java index e470bd56d07cc1f94bbf82f2beae3b6e8c0aae92..de06f04bb09c3e127dfc2f745a0d010469bd5521 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/ResourceJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/ResourceJsonFileGenerator.java @@ -16,8 +16,8 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.environment.ExecuteEnvironment; -import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConstant; /** * description: @@ -25,15 +25,15 @@ import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConsta * @author Noah Guo * @date 2020/04/29 */ -public class ResourceJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { +class ResourceJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - public ResourceJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment,isUpdradeTool); + ResourceJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + super(executeEnvironment, isUpdradeTool); } @Override public void generate(String basePath, String formName, String content) { - String resourceFileName = this.generateFileName(formName, FormJsonFileSuffixConstant.FrmSuffix + FormJsonFileSuffixConstant.ResourceJsonFile); + String resourceFileName = this.generateFileName(formName, JITEngineConstants.FrmSuffix + JITEngineConstants.ResourceJsonFile); this.writeFile(basePath, resourceFileName, content); } } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/StateMachineJsonFileGenerator.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/StateMachineJsonFileGenerator.java index b459f477ba848a807c4fb17b764fbad9f5ff82fa..f4c7db6b4e650afa1604b8cf0b9b5b7d16f02907 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/StateMachineJsonFileGenerator.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/formjsonfilegenerator/StateMachineJsonFileGenerator.java @@ -16,25 +16,25 @@ package com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.environment.ExecuteEnvironment; -import com.inspur.edp.web.jitruntimebuild.core.constant.FormJsonFileSuffixConstant; /** - * description: + * description:状态机json文件构造 * * @author Noah Guo * @date 2020/04/29 */ -public class StateMachineJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { +class StateMachineJsonFileGenerator extends AbstractFormJsonFileGenerator implements JsonFileGeneratorInterface { - public StateMachineJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment,isUpdradeTool); + StateMachineJsonFileGenerator(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + super(executeEnvironment, isUpdradeTool); } @Override public void generate(String basePath, String formName, String content) { - String smJsonFileName = this.generateFileName(formName, FormJsonFileSuffixConstant.FrmSuffix + FormJsonFileSuffixConstant.StateMachineJsonFile); + String smJsonFileName = this.generateFileName(formName, JITEngineConstants.FrmSuffix + JITEngineConstants.StateMachineJsonFile); this.writeFile(basePath, smJsonFileName, content); } } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/service/JitBuildServiceImp.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/service/JitBuildServiceImp.java index d84db2d041fe3198017b9b4241b79ce43db68141..e068453b7aa21b3bef82ea3d65ccdfa89e873c2b 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/service/JitBuildServiceImp.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/service/JitBuildServiceImp.java @@ -16,6 +16,7 @@ package com.inspur.edp.web.jitruntimebuild.core.service; +import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; @@ -31,6 +32,7 @@ import com.inspur.edp.web.jitruntimebuild.core.buildparametervalidator.JitBuildP import com.inspur.edp.web.jitruntimebuild.core.formjsonfilegenerator.FormJsonFileManager; import com.inspur.edp.web.jitruntimebuild.core.sourcecodemetadata.SourceCodeMetadataManager; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -46,6 +48,9 @@ public class JitBuildServiceImp implements JitBuildService { private static final String CurrentClassName = JitBuildServiceImp.class.getName(); + // 设定执行环境为运行时 + private static final ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Runtime; + /** * jit 运行时编译 * @@ -68,8 +73,7 @@ public class JitBuildServiceImp implements JitBuildService { JitBuildParameterGenerator.generate(buildParameter); WebLogger.Instance.info("build parameter executed completely", CurrentClassName); } - // 设定当前运行环境为runtime - ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Runtime; + // 首先删除service文件夹 避免service文件变更导致的编译失败 String sourceServicePath = buildParameter.getBuildWebDevPath() + "/services/"; try { @@ -86,22 +90,7 @@ public class JitBuildServiceImp implements JitBuildService { // 执行 脚本文件生成 WebLogger.Instance.info("begine generate source code", CurrentClassName); - ProjectCompileContext projectCompileContext = new ProjectCompileContext( - buildParameter.getBoCode(), - buildParameter.getBuildNodeModulePath(), - "pc", "angular", - buildParameter.getBuildWebDevPath(), - buildParameter.getBuildAppPath(), null, - buildParameter.getServiceUnitPath(), ExecuteEnvironment.Runtime); - if (buildParameter.isMobileApp()) { - projectCompileContext.setFormType("mobile"); - projectCompileContext.setFrameworkType("vue"); - } - // 设置运行时定制维度信息 - projectCompileContext.extraFormPath = buildParameter.getExtraFormPathStr(); - projectCompileContext.setGenerateViewModel(!buildParameter.isBabelCompile()); - // 运行时定制设置生成前删除代码目录 - projectCompileContext.setDeleteSourceCodeBeforeGenerate(true); + ProjectCompileContext projectCompileContext = generateProjectCompileContext(buildParameter); JITEngineManager.compileProject(projectCompileContext); WebLogger.Instance.info("begin compile project, the formCode is " + buildParameter.getFormCode(), CurrentClassName); @@ -127,7 +116,7 @@ public class JitBuildServiceImp implements JitBuildService { } catch (RuntimeException ex) { // 捕获编译异常 应该指定特定的异常 方便进行异常信息提示 buildErrorMessage = ex.getMessage(); - WebLogger.Instance.error(ex.getMessage() + ex.getStackTrace()); + WebLogger.Instance.error(ex.getMessage() + Arrays.toString(ex.getStackTrace())); } @@ -151,10 +140,35 @@ public class JitBuildServiceImp implements JitBuildService { mapResult.put("babelUrl", babelUrl); } - // 构造成功的返回值 + // 构造成功地返回值 buildResponse = new JitBuildResponse(); return buildResponse; } + /** + * 构造对应的编译上下文参数 + * @param buildParameter + * @return + */ + private static ProjectCompileContext generateProjectCompileContext(JitBuildParameter buildParameter) { + ProjectCompileContext projectCompileContext = new ProjectCompileContext( + buildParameter.getBoCode(), + buildParameter.getBuildNodeModulePath(), + "pc", TerminalType.PC.getFrameworkType(), + buildParameter.getBuildWebDevPath(), + buildParameter.getBuildAppPath(), null, + buildParameter.getServiceUnitPath(), executeEnvironment); + if (buildParameter.isMobileApp()) { + projectCompileContext.setFormType("mobile"); + projectCompileContext.setFrameworkType(TerminalType.MOBILE.getFrameworkType()); + } + // 设置运行时定制维度信息 + projectCompileContext.extraFormPath = buildParameter.getExtraFormPathStr(); + projectCompileContext.setGenerateViewModel(!buildParameter.isBabelCompile()); + // 运行时定制设置生成前删除代码目录 + projectCompileContext.setDeleteSourceCodeBeforeGenerate(true); + return projectCompileContext; + } + } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/sourcecodemetadata/SourceCodeMetadataManager.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/sourcecodemetadata/SourceCodeMetadataManager.java index 243d6c4550fd284fbaea451e1a7a116336998cbd..63a08d0026b560d824552d78b3bd68f040f86fdb 100644 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/sourcecodemetadata/SourceCodeMetadataManager.java +++ b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/sourcecodemetadata/SourceCodeMetadataManager.java @@ -18,13 +18,13 @@ package com.inspur.edp.web.jitruntimebuild.core.sourcecodemetadata; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.utility.Base64Utility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.jitengine.sourcecode.SourceCodeInFormManager; import com.inspur.edp.web.jitengine.sourcecode.SourceCodeInFormRef; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildParameter; import com.inspur.edp.web.jitruntimebuild.api.entity.JitBuildRefMetadata; -import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; import com.inspur.edp.web.sourcecode.metadata.entity.SourceCodeItemEntity; import com.inspur.edp.web.sourcecode.metadata.entity.SourceCodeMetadataEntity; @@ -65,7 +65,6 @@ public class SourceCodeMetadataManager { */ private static void unZipSourceMetadataEntity(List sourceCodeMetadataEntityList, JitBuildParameter buildParameter) { if (sourceCodeMetadataEntityList != null && sourceCodeMetadataEntityList.size() > 0) { - String projectAppPath = buildParameter.getBuildAppPath(); sourceCodeMetadataEntityList.forEach((sourceCodeMetadataEntityItem) -> { List items = sourceCodeMetadataEntityItem.getItems(); @@ -92,13 +91,11 @@ public class SourceCodeMetadataManager { private static String getWriteFilePath(SourceCodeItemEntity sourceCodeItemEntity, JitBuildParameter buildParameter) { Path writeFilePath = Paths.get(buildParameter.getBuildAppPath(), generateSourcePath(sourceCodeItemEntity, buildParameter)); - String strWritePath = writeFilePath.toString(); - return strWritePath; + return writeFilePath.toString(); } private static String generateSourcePath(SourceCodeItemEntity sourceCodeItemEntity, JitBuildParameter buildParameter) { - String strGeneratedSourcePath = StringUtility.isNullOrEmpty(sourceCodeItemEntity.getTargetPath()) ? sourceCodeItemEntity.getSourcePath() : sourceCodeItemEntity.getTargetPath(); - String strSourcePath = strGeneratedSourcePath; + String strSourcePath = StringUtility.isNullOrEmpty(sourceCodeItemEntity.getTargetPath()) ? sourceCodeItemEntity.getSourcePath() : sourceCodeItemEntity.getTargetPath(); strSourcePath = strSourcePath.replace("{{projectname}}", buildParameter.getBoCode()); return strSourcePath.toLowerCase(); } @@ -117,8 +114,8 @@ public class SourceCodeMetadataManager { List refMetadataList = buildParameter.getBuildRefMetadataList(); if (refMetadataList != null && refMetadataList.size() > 0) { refMetadataList.forEach((metadata) -> { - JitMetadataTypeEnum metadataTypeEnum = metadata.getMetadataType(); - if (metadataTypeEnum == JitMetadataTypeEnum.Frm) { + MetadataTypeEnum metadataTypeEnum = metadata.getMetadataType(); + if (metadataTypeEnum == MetadataTypeEnum.Frm) { String strFormMetadataContent = metadata.getContent(); SourceCodeInFormManager.getSourceCodeWithFormMetadataContent(formRefList, strFormMetadataContent); } diff --git a/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/ScriptCacheResponse.java b/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/ScriptCacheResponse.java index cbcee60d7ca06819d8765d4cefe1e6808efdddc3..2594bee2b152ceb00a7e83b7e8988d06b7db1a8d 100644 --- a/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/ScriptCacheResponse.java +++ b/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/ScriptCacheResponse.java @@ -34,7 +34,7 @@ public class ScriptCacheResponse { // 是否成功标识 private boolean success = true; - //异常西悉尼 + //异常信息 private String errorMessage; public boolean isSuccess() { diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/config/ScriptCacheConfiguration.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/config/ScriptCacheConfiguration.java index 45af3c4f2b25dc0e6ed7963652daa0092262dec9..4f5560a8801a3cb193353600727388d169fe9a68 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/config/ScriptCacheConfiguration.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/config/ScriptCacheConfiguration.java @@ -16,12 +16,14 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.config; +import com.inspur.edp.web.jitruntimebuild.scriptcache.api.service.ScriptCacheService; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormProjectCacheManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormScriptCacheContentManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormScriptCacheManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.repository.FormProjectCacheRepository; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.repository.FormScriptCacheContentRepository; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.repository.FormScriptCacheRepository; +import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerVersionManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.rpc.LocalServerVersionRpcService; import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.rpc.LocalServerVersionRpcServiceImpl; import com.inspur.edp.web.jitruntimebuild.scriptcache.manager.ScriptCacheVersionManager; @@ -58,7 +60,12 @@ public class ScriptCacheConfiguration { } @Bean - public ScriptCacheServiceImpl scriptCacheServiceImp() { + public LocalServerVersionManager localServerVersionManager() { + return new LocalServerVersionManager(); + } + + @Bean + public ScriptCacheService scriptCacheServiceImp() { return new ScriptCacheServiceImpl(); } @@ -69,7 +76,7 @@ public class ScriptCacheConfiguration { @Bean - public RESTEndpoint ScriptCacheWebServiceEndpoint(ScriptCacheWebServiceImpl webservice){ + public RESTEndpoint ScriptCacheWebServiceEndpoint(ScriptCacheWebServiceImpl webservice) { return new RESTEndpoint("/runtime/jit/v1.0/scriptcache", webservice); } @@ -77,4 +84,5 @@ public class ScriptCacheConfiguration { public LocalServerVersionRpcService localServerVersionRpcService() { return new LocalServerVersionRpcServiceImpl(); } + } diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/constants/ScriptCacheDBTableConstant.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/constants/ScriptCacheDBTableConstant.java deleted file mode 100644 index bdad43a901c18915bfa102da05d05296300a4fb6..0000000000000000000000000000000000000000 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/constants/ScriptCacheDBTableConstant.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.inspur.edp.web.jitruntimebuild.scriptcache.constants; - -/** - * description:脚本缓存关联数据库表常量 - * - * @author Noah Guo - * @date 2020/09/23 - */ -public class ScriptCacheDBTableConstant { - - /** - * 工程缓存关联数据库表名 - */ - private String projectCacheTableName="formprojectcache"; - - /** - * 表单脚本关联数据库表名 - */ - private String formscriptcacheTableName="formscriptcache"; - - /** - * 表单脚本内容关联数据库表名 - */ - private String formscriptcachecontentTableName="formscriptcachecontent"; - - public String getProjectCacheTableName() { - return projectCacheTableName; - } - - public void setProjectCacheTableName(String projectCacheTableName) { - this.projectCacheTableName = projectCacheTableName; - } - - public String getFormscriptcacheTableName() { - return formscriptcacheTableName; - } - - public void setFormscriptcacheTableName(String formscriptcacheTableName) { - this.formscriptcacheTableName = formscriptcacheTableName; - } - - public String getFormscriptcachecontentTableName() { - return formscriptcachecontentTableName; - } - - public void setFormscriptcachecontentTableName(String formscriptcachecontentTableName) { - this.formscriptcachecontentTableName = formscriptcachecontentTableName; - } -} diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/manager/FormScriptCacheManager.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/manager/FormScriptCacheManager.java index 35fb5dd86741829e44b84b370e4cd2351636026a..b5a13c61428dd5be24c17b9bf466396f25a21b5f 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/manager/FormScriptCacheManager.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/manager/FormScriptCacheManager.java @@ -109,9 +109,7 @@ public class FormScriptCacheManager { } List formScriptCacheList = new ArrayList<>(); // 创建并行流 进行数据转换 - formScriptCacheEntityList.stream().filter(Objects::nonNull).forEach((cacheEntityItem) -> { - formScriptCacheList.add(cacheEntityItem.convertTo()); - }); + formScriptCacheEntityList.stream().filter(Objects::nonNull).forEach((cacheEntityItem) -> formScriptCacheList.add(cacheEntityItem.convertTo())); return formScriptCacheList; } @@ -127,9 +125,7 @@ public class FormScriptCacheManager { return null; } List formScriptCacheList = new ArrayList<>(); - formScriptCacheEntityList.stream().filter(Objects::nonNull).forEach((cacheEntityItem) -> { - formScriptCacheList.add(cacheEntityItem.convertTo()); - }); + formScriptCacheEntityList.stream().filter(Objects::nonNull).forEach((cacheEntityItem) -> formScriptCacheList.add(cacheEntityItem.convertTo())); return formScriptCacheList; } } diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerFileOperation.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerFileOperation.java index 04b66b3dcf26fa0a45d263be877ff318f0543a52..e6e0574b27ee05c8404facd63d8274b27deaecb9 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerFileOperation.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerFileOperation.java @@ -24,15 +24,16 @@ import com.inspur.edp.web.common.io.FileUtility; * @author Noah Guo * @date 2020/10/03 */ -public class LocalServerFileOperation { +class LocalServerFileOperation { /** * 保存文件内容至指定的文件位置 + * * @param scriptFileName * @param strRelativePath * @param fileContent */ - public static void saveFile(String scriptFileName, String strRelativePath, String fileContent) { + static void saveFile(String scriptFileName, String strRelativePath, String fileContent) { String localServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); String scriptFilePath = FileUtility.combine(localServerPath, strRelativePath); FileUtility.writeFile(scriptFilePath, scriptFileName, fileContent); diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGenerator.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGenerator.java index 8209a1cef0a92781f71c87d70cb31322dc9e2f28..d1506655125422263468562843d8ffc9ff823101 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGenerator.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGenerator.java @@ -20,7 +20,7 @@ import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.utility.StringUtility; /** - * description: + * description:缓存同步 本地文件路径构造 * * @author Noah Guo * @date 2020/09/25 diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerProjectVersion.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerProjectVersion.java index 50bf527dc042eb26f5c5468c87ed8a606cff3394..5bcf95cac902dc2bf8928ac7b8d7e818d95ccce3 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerProjectVersion.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerProjectVersion.java @@ -20,12 +20,12 @@ import java.util.ArrayList; import java.util.List; /** - * description: + * description: 当前环境下 工程对应的版本信息 * * @author Noah Guo * @date 2020/09/25 */ -public class LocalServerProjectVersion { +class LocalServerProjectVersion { private LocalServerProjectVersion() { this.scriptVersionList = new ArrayList<>(); } diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerScriptVersion.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerScriptVersion.java index f46eddba900c5fb929d161af550748b432ec0b3a..87eead55c6336f9778912c8bbab5633c5e1a3a2c 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerScriptVersion.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerScriptVersion.java @@ -17,12 +17,12 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.localserver; /** - * description: + * description: 当前表单元数据关联的脚本缓存版本信息 * * @author Noah Guo * @date 2020/10/03 */ -public class LocalServerScriptVersion { +class LocalServerScriptVersion { private String formMetadataId; private String scriptName; private String scriptPath; diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileContent.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileContent.java index 4ce36c5a50eea8f98d7045ce577bc62f9f7fdd08..e6110dc0010f3a6c439e6176d625f64addc12df1 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileContent.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileContent.java @@ -25,7 +25,7 @@ import java.util.List; * @author Noah Guo * @date 2020/09/25 */ -public class LocalServerVersionFileContent { +class LocalServerVersionFileContent { /** * 工程版本内容列表 */ diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileOperation.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileOperation.java index 3295edfdc2c4f9954fc449f14c37fb668ec02a60..5cb6405817fcf4d7190841f1726a7bf587bbbddf 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileOperation.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionFileOperation.java @@ -27,6 +27,8 @@ import java.util.stream.Collectors; /** * description: server缓存脚本文件操作 + * 全局实例 需保证整个应用中存在一份 + * 因为会在初始化时进行脚本缓存版本的初始 * * @author Noah Guo * @date 2020/09/25 diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionManager.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionManager.java index ac22bab7df5f0c32ef127a0a7f353de59bbb20ea..151636ae77060b2aadfbf965d9ff8c9b774308bb 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionManager.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerVersionManager.java @@ -28,6 +28,7 @@ import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.EqualsUtility; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.FormProjectCache; @@ -41,51 +42,37 @@ import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.databaseobject.api.service.IDatabaseObjectRtService; import io.iec.edp.caf.rpc.client.RpcClassHolder; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; /** * description:服务器脚本版本manager + * 注册为Bean * * @author Noah Guo * @date 2020/09/25 */ public class LocalServerVersionManager { - private static volatile LocalServerVersionManager _instance; private static final String CurrentClassName = LocalServerVersionManager.class.getName(); - private static final Object _lock = new Object(); - private LocalServerVersionRpcService localServerVersionRpcService; + private final LocalServerVersionRpcService localServerVersionRpcService; - private final ScriptCacheVersionManager scriptCacheVersionManagerInstance = new ScriptCacheVersionManager(); + @Resource + private ScriptCacheVersionManager scriptCacheVersionManagerInstance; - private LocalServerVersionManager() { - if (localServerVersionRpcService == null) { - RpcClassHolder rpcClassHolder = SpringBeanUtils.getBean(RpcClassHolder.class); - this.localServerVersionRpcService = rpcClassHolder.getRpcClass("bcc", LocalServerVersionRpcService.class); - } - } + @Resource + private RpcClassHolder rpcClassHolder; - /** - * 获取唯一的实例 - * 采用双重锁定并volatile的方式避免获取到的实例存在多个或不完整的情况 - * - * @return - */ - public static LocalServerVersionManager getSingleInstance() { - if (_instance == null) { - synchronized (_lock) { - if (_instance == null) { - _instance = new LocalServerVersionManager(); - } - } - } - return _instance; + + public LocalServerVersionManager() { + this.localServerVersionRpcService = rpcClassHolder.getRpcClass("bcc", LocalServerVersionRpcService.class); } + /** * 本地脚本文件与数据库脚本文件进行比较 * @@ -101,9 +88,9 @@ public class LocalServerVersionManager { } // 获取数据库中存储的脚本文件信息 List formScriptCacheList = this.localServerVersionRpcService.getFormScriptCacheByMetadataId(formMetadataId); - if (formScriptCacheList == null || formScriptCacheList.size() == 0) { + if (ListUtility.isEmpty(formScriptCacheList)) { cacheResponse.setSuccess(false); - String errorMessage = "根据元数据id获取文件列表为空,对应元数据id:" + formMetadataId; + String errorMessage = String.format("根据元数据id获取文件列表为空,对应元数据id:%s", formMetadataId); WebLogger.Instance.error(errorMessage); errorMessage = "打开当前维度失败,请在【业务配置中心】,检查此维度是否进行了保存预览操作。相关元数据id:" + formMetadataId; cacheResponse.setErrorMessage(errorMessage); @@ -113,7 +100,7 @@ public class LocalServerVersionManager { FormProjectCache formProjectCache = this.localServerVersionRpcService.getFormProjectCacheById(formScriptCacheList.get(0).getProjectVersionId()); if (formProjectCache == null) { cacheResponse.setSuccess(false); - cacheResponse.setErrorMessage("元数据对应的工程缓存信息为空,元数据id为" + formMetadataId); + cacheResponse.setErrorMessage(String.format("元数据对应的工程缓存信息为空,元数据id为:%s", formMetadataId)); return cacheResponse; } diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/manager/ScriptCacheVersionManager.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/manager/ScriptCacheVersionManager.java index 12728d387e9268b23d7eafbe2c8dde24dff2f602..497b5dcc4de0648bc4f10dc8499e1f0806ac1bbc 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/manager/ScriptCacheVersionManager.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/manager/ScriptCacheVersionManager.java @@ -28,8 +28,8 @@ import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.entity.FormScriptCa import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormProjectCacheManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormScriptCacheContentManager; import com.inspur.edp.web.jitruntimebuild.scriptcache.domain.manager.FormScriptCacheManager; -import io.iec.edp.caf.commons.utils.SpringBeanUtils; +import javax.annotation.Resource; import java.util.List; /** @@ -40,25 +40,17 @@ import java.util.List; */ public class ScriptCacheVersionManager { - private final FormProjectCacheManager formProjectCacheManager; - private final FormScriptCacheManager formScriptCacheManager; - private final FormScriptCacheContentManager formScriptCacheContentManager; + @Resource + private FormProjectCacheManager formProjectCacheManager; - public ScriptCacheVersionManager() { - this.formProjectCacheManager = SpringBeanUtils.getBean(FormProjectCacheManager.class); - this.formScriptCacheContentManager = SpringBeanUtils.getBean(FormScriptCacheContentManager.class); - this.formScriptCacheManager = SpringBeanUtils.getBean(FormScriptCacheManager.class); - } + @Resource + private FormScriptCacheManager formScriptCacheManager; - /** - * 元数据版本检测 - * - * @param metadataId - * @param version - * @return - */ - public boolean checkMetadataVersion(String metadataId, String version) { - return true; + @Resource + private FormScriptCacheContentManager formScriptCacheContentManager; + + + public ScriptCacheVersionManager() { } /** @@ -91,9 +83,7 @@ public class ScriptCacheVersionManager { * @param formProjectCache 工程脚本缓存 */ public void updateFormProjectCache(FormProjectCache formProjectCache) { - StringUtility.executeIfPresent(formProjectCache.getId(), StringUtility::isNullOrEmpty, (param) -> { - formProjectCache.setId(RandomUtility.newGuid()); - }); + StringUtility.executeIfPresent(formProjectCache.getId(), StringUtility::isNullOrEmpty, (param) -> formProjectCache.setId(RandomUtility.newGuid())); FormProjectCacheEntity projectCacheEntity = FormProjectCacheEntity.convertFrom(formProjectCache); this.formProjectCacheManager.save(projectCacheEntity); } diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/webservice/ScriptCacheWebServiceImpl.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/webservice/ScriptCacheWebServiceImpl.java index 19ab8ed93e0b71fd04277b71031f39c346b984fd..7d27c14704aaab32cfe03c3d407285bfc39fc535 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/webservice/ScriptCacheWebServiceImpl.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/webservice/ScriptCacheWebServiceImpl.java @@ -22,6 +22,8 @@ import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.ScriptCacheResp import com.inspur.edp.web.jitruntimebuild.scriptcache.api.webservice.ScriptCacheWebService; import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerVersionManager; +import javax.annotation.Resource; + /** * description: 脚本缓存web调用入口 * @@ -29,6 +31,9 @@ import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerVer * @date 2020/09/24 */ public class ScriptCacheWebServiceImpl implements ScriptCacheWebService { + @Resource + private LocalServerVersionManager localServerVersionManager; + /** * 脚本缓存 版本检测 * @@ -37,7 +42,7 @@ public class ScriptCacheWebServiceImpl implements ScriptCacheWebService { */ @Override public ScriptCacheResponse checkVersion(ScriptCacheCheckVersionRequest request) { - ScriptCacheResponse scriptCacheResponse = ScriptCacheResponse.getInstance(); + ScriptCacheResponse scriptCacheResponse = ScriptCacheResponse.getInstance(); // 进行入参检测 if (request == null) { @@ -49,7 +54,7 @@ public class ScriptCacheWebServiceImpl implements ScriptCacheWebService { // 如果参数中表单元数据id不为空 那么使用元数据id进行版本检测 if (!StringUtility.isNullOrEmpty(request.getFormMetadataId())) { // 进行本地版本与数据库版本比较 - scriptCacheResponse = LocalServerVersionManager.getSingleInstance().checkVersionWithFormMetadataId(request.getFormMetadataId()); + scriptCacheResponse = this.localServerVersionManager.checkVersionWithFormMetadataId(request.getFormMetadataId()); } else { scriptCacheResponse = this.checkVersionWithProjectInfo(request); } @@ -72,7 +77,7 @@ public class ScriptCacheWebServiceImpl implements ScriptCacheWebService { * @return */ private ScriptCacheResponse checkVersionWithProjectInfo(ScriptCacheCheckVersionRequest request) { - ScriptCacheResponse scriptCacheResponse = ScriptCacheResponse.getInstance(); + ScriptCacheResponse scriptCacheResponse = ScriptCacheResponse.getInstance(); if (StringUtility.isNullOrEmpty(request.getProjectName())) { scriptCacheResponse.setSuccess(false); @@ -84,7 +89,7 @@ public class ScriptCacheWebServiceImpl implements ScriptCacheWebService { scriptCacheResponse.setErrorMessage("脚本检测,工程路径不能为空"); return scriptCacheResponse; } - scriptCacheResponse = LocalServerVersionManager.getSingleInstance().checkVersionWithProjectNameAndRelativePath(request.getProjectName(), request.getProjectRelativePath()); + scriptCacheResponse = this.localServerVersionManager.checkVersionWithProjectNameAndRelativePath(request.getProjectName(), request.getProjectRelativePath()); return scriptCacheResponse; } diff --git a/web-common/src/main/java/com/inspur/edp/web/common/JITEngineConstants.java b/web-common/src/main/java/com/inspur/edp/web/common/JITEngineConstants.java index ab09718847e12a092a04dfb005d06e5512a97091..ed1a8c4715fa0e25494805bc1a24a96f96159aa0 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/JITEngineConstants.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/JITEngineConstants.java @@ -18,6 +18,7 @@ package com.inspur.edp.web.common; /** * JITEngine执行常量参数 + * * @author guozhiqi */ public class JITEngineConstants { @@ -44,16 +45,6 @@ public class JITEngineConstants { */ public static final String Node_ModulesPathName = "node_modules"; - /** - * jit-engine form 工程版本文件 - */ - public static final String ProjectVersionFileName = "projectversionserver.json"; - - /** - * 是否需要重新编译标识 - */ - public static final String ProjectVersionNeedRecompile = "ProjectVersionNeedRecompile"; - /** * jit 执行命令js文件相对于server nodejs路径的相对路径 @@ -72,4 +63,53 @@ public class JITEngineConstants { public static final String RollupCommandRelativePath = "rollup/bin/rollup"; + /** + * 表单文件后缀 + */ + public static final String FrmJsonFile = ".json"; + + /** + * 命令json文件后缀 .command.json + */ + public static final String CommandJsonFile = ".command.json"; + + /** + * eapi json文件后缀.eapi.json + */ + public static final String EapiJsonFile = ".eapi.json"; + + /** + * 资源文件后缀 .resource.json + */ + public static final String ResourceJsonFile = ".resource.json"; + + /** + * 状态机文件后缀 .sm.json + */ + public static final String StateMachineJsonFile = ".sm.json"; + + /** + * 表单文件后缀 .frm + */ + public static final String FrmSuffix = ".frm"; + + /** + * su运行的根目录 apps + */ + public static final String DefaultSUBasePath = "apps"; + + /** + * 生成脚本文件目录名称 dist-rollup + */ + public static final String DistRollupPathName = "dist-rollup"; + + /** + * 部署目录中web + */ + public static final String DeployWebPathName = "web"; + + /** + * webdev 路径 + */ + public static final String WebDevPathName = "webdev"; } diff --git a/web-common/src/main/java/com/inspur/edp/web/common/constant/FrontendProjectConstant.java b/web-common/src/main/java/com/inspur/edp/web/common/constant/FrontendProjectConstant.java index 1a979855348687d67d3827304cc076ae1976a95b..2ce381fe70874b9d91147efd0c201a902f9e243a 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/constant/FrontendProjectConstant.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/constant/FrontendProjectConstant.java @@ -53,11 +53,6 @@ public final class FrontendProjectConstant { public static final String PROJECT_GENDER_PATH_FOR_DYNAMIC_FORM = "dynamicform"; - /** - * 前端工程构建目录 - */ - public static final String PROJECT_BUILD_PATH = "dist-rollup"; - /** * 命令服务生成目录 */ diff --git a/web-common/src/main/java/com/inspur/edp/web/common/entity/ResultMessage.java b/web-common/src/main/java/com/inspur/edp/web/common/entity/ResultMessage.java index 9268e60c604a0f71b2c27556f65c6fc0af8f496f..292813f61f5ef2d03869ab058294f7c2de91a64c 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/entity/ResultMessage.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/entity/ResultMessage.java @@ -67,6 +67,6 @@ public class ResultMessage implements Serializable { this.code = code; this.message = message; this.data = data; - this.success = this.code == 1 ? true : false; + this.success = this.code == 1; } } diff --git a/web-common/src/main/java/com/inspur/edp/web/common/entity/TerminalType.java b/web-common/src/main/java/com/inspur/edp/web/common/entity/TerminalType.java index 6732a73dd614b67314650f34b2d432d6ef4a51f1..a7514b23468f59d0082918c82d55a8d22ee76cd2 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/entity/TerminalType.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/entity/TerminalType.java @@ -16,6 +16,7 @@ package com.inspur.edp.web.common.entity; +import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.io.FileUtility; @@ -24,7 +25,6 @@ import lombok.Data; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Supplier; /** @@ -215,6 +215,7 @@ public enum TerminalType { /** * 根据terminalType执行不同的supplier + * * @param terminalType * @param executeWithPCSupplier * @param executeWithMobileSupplier @@ -383,7 +384,7 @@ public enum TerminalType { * @return */ public String getDeployableProjectRelativePath() { - return FileUtility.combine(FrontendProjectConstant.FRONTEND_PROJECT_COMPILE_PATH, this.getAppPathName(), FrontendProjectConstant.PROJECT_BUILD_PATH); + return FileUtility.combine(FrontendProjectConstant.FRONTEND_PROJECT_COMPILE_PATH, this.getAppPathName(), JITEngineConstants.DistRollupPathName); } /** diff --git a/web-common/src/main/java/com/inspur/edp/web/common/io/FileUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/io/FileUtility.java index 7f2fcc6d8b4d785414411cf6058abc13deb02fcd..02bd37dc70ab6ac7c6b602481cea2aaa27adcaa1 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/io/FileUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/io/FileUtility.java @@ -28,6 +28,7 @@ import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -653,7 +654,7 @@ public class FileUtility { } catch (Exception e) { WebLogger.Instance.error(e); - throw new WebCustomException(e.getMessage() + e.getStackTrace()); + throw new WebCustomException(e.getMessage() + Arrays.toString(e.getStackTrace())); } } diff --git a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataUtility.java index c11ee910eca6b0d0923848d6bc5b99af59b2665d..c1dc4826dab47bd1fc0b071f3c31e51fefc2be84 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataUtility.java @@ -361,8 +361,6 @@ public final class MetadataUtility { afterGetReferenceWebComponentMetadata.invoke(commandMetadata, methodReferingItem, webComponentMetadata, parameterArray); break; - case Branch: - break; case BranchCollection: getReferenceWebComponentMetadata(null, componentMetadataCollection, ((BranchCollectionCommandItem) item).getItems(), componentCacheList, afterGetReferenceWebComponentMetadata, parameterArray); break; diff --git a/web-common/src/main/java/com/inspur/edp/web/common/utility/CommandLineUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/utility/CommandLineUtility.java index 79435354bf59894f32061f760b9a240684b10ae5..eb0493f987157d1d4a0a1d5e7f5b6c00f00ea325 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/utility/CommandLineUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/utility/CommandLineUtility.java @@ -20,6 +20,7 @@ import com.inspur.edp.web.common.logger.WebLogger; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.SystemUtils; +import java.io.IOException; import java.util.Arrays; /** @@ -94,18 +95,7 @@ public class CommandLineUtility { String errorMessage = ""; try { WebLogger.Instance.info(command, CommandLineUtility.class.getName()); - Process process = null; - String updateCommand = command; - if (SystemUtils.IS_OS_WINDOWS) { - updateCommand = "cmd.exe" + " /C" + " " + command; - process = Runtime.getRuntime().exec(updateCommand); - } else if (SystemUtils.IS_OS_UNIX) { - updateCommand = command; - process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", updateCommand}); - } - if (updateCommand == null) { - throw new RuntimeException("不支持的操作系统类型,请联系开发人员处理"); - } + Process process = getProcessWithOs(command); CommandExecuteInterceptor errorCommandInterceptor = new CommandExecuteInterceptor(process.getErrorStream(), errorSB, true); CommandExecuteInterceptor inputCommandInterceptor = new CommandExecuteInterceptor(process.getInputStream(), errorSB, false); @@ -128,6 +118,28 @@ public class CommandLineUtility { return errorMessage; } + /** + * 获取适应于不同操作系统的Process + * @param command + * @return + * @throws IOException + */ + public static Process getProcessWithOs(String command) throws IOException { + Process process = null; + String updateCommand = command; + if (SystemUtils.IS_OS_WINDOWS) { + updateCommand = "cmd.exe" + " /C" + " " + command; + process = Runtime.getRuntime().exec(updateCommand); + } else if (SystemUtils.IS_OS_UNIX) { + updateCommand = command; + process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", updateCommand}); + } + if (updateCommand == null) { + throw new RuntimeException("不支持的操作系统类型,请联系开发人员处理"); + } + return process; + } + /** * 判断是否包含错误描述信息 diff --git a/web-common/src/main/java/com/inspur/edp/web/common/utility/StringUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/utility/StringUtility.java index 491fe10a47c6fcd9cd8f3312fcaad43b2c4a9131..4c17524e987abf915444d92a7ad7184a8aedc7cc 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/utility/StringUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/utility/StringUtility.java @@ -47,7 +47,7 @@ public class StringUtility { if (isNullOrEmpty(str)) { return false; } - Matcher isNum = pattern.matcher(str.charAt(0) + ""); + Matcher isNum = pattern.matcher(String.valueOf(str.charAt(0))); return isNum.matches(); } diff --git a/web-common/src/test/java/com/inspur/edp/web/common/CopyJarFile.java b/web-common/src/test/java/com/inspur/edp/web/common/CopyJarFile.java new file mode 100644 index 0000000000000000000000000000000000000000..8e711324d33b3bf70a3ac6b04c0a315d15b3dcea --- /dev/null +++ b/web-common/src/test/java/com/inspur/edp/web/common/CopyJarFile.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.inspur.edp.web.common; + +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.common.utility.StringUtility; +import lombok.Data; +import org.apache.commons.io.IOUtils; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * 用于进行mac 的拷贝 + * + * @author noah + * 2023/7/17 10:23 + */ +public class CopyJarFile { + @Test + public void copy() throws XmlPullParserException, IOException { + // 获取当前运行目录 + String currentWorkPath = System.getProperty("user.dir"); + System.out.println(currentWorkPath); + // 获取对应的工程路径 + String projectPath = new File(currentWorkPath).getParent(); + System.out.println(projectPath); + + // 挨个读取其生成的jar包,拷贝至目标目录 + String version = "0.1.9-SNAPSHOT"; + + String baseTargetJarPath = FileUtility.combine(projectPath, "out"); + + FileUtility.deleteFolder(baseTargetJarPath); + + Model pomModel = getPom(projectPath); + + Map moduleMap = this.getModulePath(); + pomModel.getModules().forEach(moduleItem -> { + String moduleId = moduleMap.get(moduleItem).moduleId; + if (StringUtility.isNullOrEmpty(moduleId)) { + WebLogger.Instance.error("无法找到对应的moduleId" + moduleItem); + } else { + String modulePath = FileUtility.combine(projectPath, moduleItem); + String moduleJarFilePath = FileUtility.combine(modulePath, "target", moduleId + "-" + version + ".jar"); + if (!new File(moduleJarFilePath).exists()) { + WebLogger.Instance.error("目标文件不存在," + moduleJarFilePath); + } else { + String targetJarPath = FileUtility.combine(baseTargetJarPath, moduleMap.get(moduleItem).getRelativePath()); + String targetJarFilePath = FileUtility.combine(targetJarPath, moduleId + ".jar"); + FileUtility.copyFile(moduleJarFilePath, targetJarFilePath, true); + } + } + + }); + + + } + + private Map getModulePath() { + Map moduleMap = new HashMap<>(); + moduleMap.put("web-common", ModulePath.init("web-jitengine-common")); + moduleMap.put("web-form-metadata-api", ModulePath.init("web-jitengine-formmetadata-api")); + moduleMap.put("web-form-metadata", ModulePath.init("web-jitengine-formmetadata")); + moduleMap.put("web-sourcecode-metadata", ModulePath.init("web-sourcecode-metadata")); + moduleMap.put("web-pageflow-metadata", ModulePath.init("web-pageflow-metadata")); + moduleMap.put("web-appconfig-api", ModulePath.init("web-appconfig-api")); + moduleMap.put("web-appconfig-core", ModulePath.init("web-appconfig-core")); + moduleMap.put("web-frontendproject", ModulePath.init("web-jitengine-frontendproject")); + moduleMap.put("web-frontendproject-api", ModulePath.init("web-jitengine-frontendproject-api")); + moduleMap.put("web-form-jitengine", ModulePath.init("web-jitengine")); + moduleMap.put("web-designschema", ModulePath.init("web-designschema")); + moduleMap.put("web-designschema-api", ModulePath.init("web-designschema-api")); + moduleMap.put("web-statemachine", ModulePath.init("web-statemachine-metadata")); + moduleMap.put("web-tsfile-api", ModulePath.init("web-tsfile-api")); + moduleMap.put("web-tsfile-core", ModulePath.init("web-tsfile-core")); + moduleMap.put("web-ide-api", ModulePath.init("web-ide-api")); + moduleMap.put("web-ide-webapi", ModulePath.init("ide-config-webapi","server/platform/dev/main/libs")); + moduleMap.put("runtime-api", ModulePath.init("web-jitengine-runtimebuild-api")); + moduleMap.put("runtime-core", ModulePath.init("web-jitengine-runtimebuild-core")); + moduleMap.put("runtime-scriptcache", ModulePath.init("web-jitengine-runtimebuild-scriptcache")); + moduleMap.put("runtime-scriptcache-api", ModulePath.init("web-jitengine-runtimebuild-scriptcache-api")); + moduleMap.put("jitengine-web-api", ModulePath.init("web-jitengine-web-api")); + moduleMap.put("jitengine-web-core", ModulePath.init("web-jitengine-web-core")); + moduleMap.put("web-npmpackage-core", ModulePath.init("web-npmpackage-core")); + moduleMap.put("web-npmpackage-api", ModulePath.init("web-npmpackage-api")); + moduleMap.put("web-npmpackage-patch", ModulePath.init("web-npmpackage-patch")); + moduleMap.put("web-dynamic-form-api", ModulePath.init("web-dynamicform-api")); + moduleMap.put("web-dynamic-form-core", ModulePath.init("web-dynamicform-core")); + moduleMap.put("web-formconfig-api", ModulePath.init("web-formconfig-api")); + moduleMap.put("web-formconfig-core", ModulePath.init("web-formconfig-core")); + return moduleMap; + } + + @Data + private static class ModulePath { + private String moduleId; + private String relativePath = "server/platform/common/libs"; + + public static ModulePath init(String moduleId) { + ModulePath modulePath = new ModulePath(); + modulePath.moduleId = moduleId; + return modulePath; + } + + public static ModulePath init(String moduleId, String relativePath) { + ModulePath modulePath = new ModulePath(); + modulePath.moduleId = moduleId; + modulePath.relativePath = relativePath; + return modulePath; + } + } + + private Model getPom(String basePath) throws IOException, XmlPullParserException { + File file = new File(basePath, "pom.xml"); + FileReader reader = null; + + try { + reader = new FileReader(file); + return new MavenXpp3Reader().read(reader); + } finally { + IOUtils.closeQuietly(reader); + } + + } + +} diff --git a/web-common/src/test/java/com/inspur/edp/web/common/entity/TerminalTypeTest.java b/web-common/src/test/java/com/inspur/edp/web/common/entity/TerminalTypeTest.java index 497b619d413a26d357b7fd5933813496de5d5642..16687f63351e0b0bbdc740849f17a09863b15eb0 100644 --- a/web-common/src/test/java/com/inspur/edp/web/common/entity/TerminalTypeTest.java +++ b/web-common/src/test/java/com/inspur/edp/web/common/entity/TerminalTypeTest.java @@ -28,8 +28,8 @@ public class TerminalTypeTest { public void getAllTypeSuffixList() { List terminalTypeSuffixList = TerminalType.getAllTypeSuffixList(); assertEquals(terminalTypeSuffixList.size(), 2); - assertEquals(terminalTypeSuffixList.contains(TerminalType.PC.getFormMetadataSuffix()), true); - assertEquals(terminalTypeSuffixList.contains(TerminalType.MOBILE.getFormMetadataSuffix()), true); + assertTrue(terminalTypeSuffixList.contains(TerminalType.PC.getFormMetadataSuffix())); + assertTrue(terminalTypeSuffixList.contains(TerminalType.MOBILE.getFormMetadataSuffix())); } @Test diff --git a/web-common/src/test/java/com/inspur/edp/web/common/io/FileUtilityTest.java b/web-common/src/test/java/com/inspur/edp/web/common/io/FileUtilityTest.java index cac7c0a37b53dc1d332bfece747ef66f236f0e58..498edd3d1935ac6f4db0e3e0307ead74d95fea99 100644 --- a/web-common/src/test/java/com/inspur/edp/web/common/io/FileUtilityTest.java +++ b/web-common/src/test/java/com/inspur/edp/web/common/io/FileUtilityTest.java @@ -69,7 +69,7 @@ public class FileUtilityTest { @Test public void testExists() { File file = new File("c:/bucunzai"); - Assert.assertEquals(file.isDirectory(), true); + Assert.assertTrue(file.isDirectory()); } diff --git a/web-common/src/test/java/com/inspur/edp/web/common/utility/StringUtilityTest.java b/web-common/src/test/java/com/inspur/edp/web/common/utility/StringUtilityTest.java index ae6f02b4f55fe60275ecde39027b4ce8e7f0e852..b7d45c6d9e31eb446e89371fed4894fb32d27a43 100644 --- a/web-common/src/test/java/com/inspur/edp/web/common/utility/StringUtilityTest.java +++ b/web-common/src/test/java/com/inspur/edp/web/common/utility/StringUtilityTest.java @@ -19,9 +19,9 @@ package com.inspur.edp.web.common.utility; import org.junit.Assert; import org.junit.Test; -import java.util.Arrays; +import java.util.Collections; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class StringUtilityTest { @@ -76,9 +76,9 @@ public class StringUtilityTest { @Test public void testTrim() { - String source = "'\"fdfdfdfdf\'fdfdfdf\"'"; - String result = StringUtility.trimStringWith(source, Arrays.asList('\'')); - Assert.assertEquals(result, "fdfdfdfdf\'fdfdfdf"); + String source = "'\"fdfdfdfdf'fdfdfdf\"'"; + String result = StringUtility.trimStringWith(source, Collections.singletonList('\'')); + Assert.assertEquals(result, "fdfdfdfdf'fdfdfdf"); } diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/helplinkconfig/HelpLinkConfigConvertor.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/helplinkconfig/HelpLinkConfigConvertor.java index 1e049f7a081efff24ae2a46b1177f79fec010b20..3a6b532c6ac397d991aea04c00b276746f39180e 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/helplinkconfig/HelpLinkConfigConvertor.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/helplinkconfig/HelpLinkConfigConvertor.java @@ -32,7 +32,7 @@ public class HelpLinkConfigConvertor { return linkedConfigCollection; } - List linkedConfigList = linkConfig.getConfig().stream().map(t -> LinkedConfigItemConvertor.convert(t)).collect(Collectors.toList()); + List linkedConfigList = linkConfig.getConfig().stream().map(LinkedConfigItemConvertor::convert).collect(Collectors.toList()); linkedConfigCollection.addAll(linkedConfigList); return linkedConfigCollection; } diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtension.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtension.java index 3966b9336e53ebbfdc6e4064e619d6ed8989d7f9..f4036351262dcb236ee82e28a2f17703c0a712b3 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtension.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtension.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.JsonNode; import com.inspur.edp.udt.designtime.api.extension.BaseUdtExtension; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.HashMap; @@ -27,6 +28,7 @@ import java.util.HashMap; * @author liyz * @date 2021/7/27 */ +@EqualsAndHashCode(callSuper = true) @Data public class FormUdtExtension extends BaseUdtExtension { @@ -35,7 +37,7 @@ public class FormUdtExtension extends BaseUdtExtension { private LookupConfig lookupConfig; @Data - public class LookupConfig { + public static class LookupConfig { private String helpId; private String idField; private String valueField; diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtensionDeserializer.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtensionDeserializer.java index eff29cefe07ea4efdf58507c0ec6d17e3d072bc5..7b92ff86bf1dd3043e5f11ab84fd164ca9c6f1a2 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtensionDeserializer.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/udtextensiondef/FormUdtExtensionDeserializer.java @@ -62,7 +62,7 @@ public class FormUdtExtensionDeserializer extends BaseUdtExtensionDeserializer new ArrayList()); + childItem.computeIfPresent("fields", (k, v) -> new ArrayList<>()); // 仅限于单列表处理 向列表添加属性参数 schema.getEntities().stream().findFirst().ifPresent(mainEntity -> { @@ -347,7 +347,7 @@ public class DynamicCreateFormMetadataServiceImpl implements DynamicCreateFormMe return querySchemaField; } return null; - }).filter(t -> t != null).collect(Collectors.toList()); + }).filter(Objects::nonNull).collect(Collectors.toList()); contentItem.put("fieldConfigs", querySchemaFieldList); contentItem.put("presetFieldConfigs", querySchemaFieldList); } @@ -359,13 +359,11 @@ public class DynamicCreateFormMetadataServiceImpl implements DynamicCreateFormMe if (metadataInfoItem.getTemplateInfo().isNewCardTemplate() && Objects.equals(currentComponentId, "basic-form-component") && Objects.equals(childItem.get("type"), "Form")) { schema.getEntities().stream().findFirst().ifPresent(mainEntity -> { List mainEntityFieldList = mainEntity.getType().getFields(); - if (childItem.get("contents") == null) { - childItem.put("contents", new ArrayList>()); - } + childItem.computeIfAbsent("contents", k -> new ArrayList>()); FormTableInfo findTableInfo = metadataInfoItem.getFormTableInfo().getByCode(mainEntity.getCode()); //childItem.get("contents") - mainEntityFieldList.stream().forEach(fieldItem -> { + mainEntityFieldList.forEach(fieldItem -> { if (fieldItem instanceof SimpleField) { SimpleField simpleFieldItem = (SimpleField) fieldItem; String editorType = simpleFieldItem.getEditor().get$type(); diff --git a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/statemachine/StateMachineMetadataGenerator.java b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/statemachine/StateMachineMetadataGenerator.java index 318bb402ddcaa585bb12a6a369fb0eaa88582607..35cf382338b98b030ae34c3cac3c875129698748 100644 --- a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/statemachine/StateMachineMetadataGenerator.java +++ b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/statemachine/StateMachineMetadataGenerator.java @@ -68,13 +68,13 @@ public class StateMachineMetadataGenerator { // 保存状态机元数据 MetadataUtility.getInstance().saveMetadataWithDesign(smMetadata); - List> stateMachineList = new ArrayList<>(); + ArrayList> stateMachineList = new ArrayList<>(); HashMap stateMachineMap = new HashMap<>(); stateMachineMap.put("id", formListMetadata.getHeader().getCode() + "_state_machine"); stateMachineMap.put("name", formListMetadata.getHeader().getName() + "状态机"); stateMachineMap.put("uri", smMetadata.getHeader().getId()); stateMachineList.add(stateMachineMap); - formDOM.getModule().setStateMachines((ArrayList>) stateMachineList); + formDOM.getModule().setStateMachines(stateMachineList); // 更新对应的viewModel节点的状态机参数定义 formDOM.getModule().getviewmodels().forEach(viewModelItem -> { diff --git a/web-form-jitengine/pom.xml b/web-form-jitengine/pom.xml index 5a76ea7396e57919d7f91dd031d803b110ffa5a9..0f754b7d3a21f9ad1a2ae061c379c7282b3caf6d 100644 --- a/web-form-jitengine/pom.xml +++ b/web-form-jitengine/pom.xml @@ -1,4 +1,3 @@ -