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 ecb276f812658a02c94688dd71371bc0d7d4f087..ae3d161f6b4ba75691fc64c58fbbdbbec8fe3915 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,6 +18,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.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; @@ -39,7 +40,7 @@ public class FormJsonFileManager { */ public static void generateSpecificJsonFile(JitBuildParameter buildParameter, ExecuteEnvironment executeEnvironment) { String webDevPath = buildParameter.getBuildWebDevPath(); - if (buildParameter.getBuildRefMetadataList() != null && buildParameter.getBuildRefMetadataList().size() > 0) { + if (ListUtility.isNotEmpty(buildParameter.getBuildRefMetadataList())) { buildParameter.getBuildRefMetadataList().forEach(jitBuildRefMetadata -> { if (!StringUtility.isNullOrEmpty(jitBuildRefMetadata.getContent())) { JitMetadataTypeEnum metadataTypeEnum = jitBuildRefMetadata.getMetadataType(); 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 f1f3b30dc7338422f8c5ddc7f368b5558a989787..effad1533f0ee308d6a0267eb6ce6e2f3aeed70d 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 @@ -84,7 +84,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen } HashMap projectWebCmd = new HashMap<>(); - this.executeExternalComponent(visualDom, basePath, basePath + "/services", basePath, basePath, projectWebCmd, expressionManifest); + this.executeExternalComponent(visualDom, basePath, basePath + "/services", basePath, basePath, null, projectWebCmd, expressionManifest); // 写入表单表达式json文件 ExpressionManifestManager.writeExpressionJson(expressionManifest, basePath, false); @@ -108,7 +108,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen HashMap projectCmpList = new HashMap<>(); try { fileName = fileName + ".frm"; - commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(null, json), fileName, basePath, projectCmpList, null, fileName); + commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(null, json), fileName, basePath, projectCmpList); } catch (Exception e) { WebLogger.Instance.error(e); } @@ -210,7 +210,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen * 处理扩展组件 */ private void executeExternalComponent(FormDOM json, String targetStorageBasePath, String formServicePath, String projectPath, - String webdevpath, HashMap projectCmpList, ExpressionManifest expressionManifest) { + String webdevpath, String relativePath, HashMap projectCmpList, ExpressionManifest expressionManifest) { if (json != null && json.getModule() != null && json.getModule().getExternalComponents() != null && json.getModule().getExternalComponents().size() > 0) { for (HashMap item : json.getModule().getExternalComponents()) { @@ -219,7 +219,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen AnalysisExternalComponentResult externalVisualDom; try { - externalVisualDom = formAnalysis.analysisExternalComponent(targetStorageBasePath, json.getModule().getCode().toLowerCase(), item, webdevpath); + externalVisualDom = formAnalysis.analysisExternalComponent(targetStorageBasePath, json.getModule().getCode().toLowerCase(), relativePath, item, webdevpath); } catch (Exception e) { WebLogger.Instance.error(e); return; @@ -293,15 +293,17 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen String formMetadataName = formMetadata.getHeader().getFileName(); // 临时注释,方便调试 // Step 2: Resolve StateMachine, and Save StateMachine - StateMachineAnalysis.resolveStateMachine(formDom, formMetadataName, targetStorageBasePath, webDevPath, projectPath, this.getExecuteEnvironment(), this.isUpdradeTool()); + StateMachineAnalysis stateMachineAnalysis = new StateMachineAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); + stateMachineAnalysis.resolveStateMachine(formDom, formMetadataName, targetStorageBasePath, relativePath); // // // Step 3: Resolve Command CommandsAnalysis commandsAnalysis = new CommandsAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); - commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(formMetadata,formDom), formMetadataName, targetStorageBasePath, projectCmpList, webDevPath, null); + commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(formMetadata, formDom), + formMetadataName, targetStorageBasePath, projectCmpList); // // // Step 4: Resolve eapi EapiAnalysis eapiAnalysis = new EapiAnalysis(this.getExecuteEnvironment(), this.isUpdradeTool()); - eapiAnalysis.resolveEapi(formDom, formMetadataName, targetStorageBasePath, projectPath, webDevPath, formMetadata.getHeader().getNameSpace()); + eapiAnalysis.resolveEapi(formDom, formMetadataName, targetStorageBasePath, formMetadata.getHeader().getNameSpace(), relativePath); // // // Step 5: Resolve command service CommandServiceAnalysis.resolveCommandService(formDom, relativePath, formServiceBasePath, webDevPath, this.getExecuteEnvironment(), this.isUpdradeTool()); @@ -312,7 +314,7 @@ public class FrmJsonFileGenerator extends AbstractFormJsonFileGenerator implemen // 递归解析 如果存在子组件 那么需要递归执行子组件 executeExternalComponent(formDom, targetStorageBasePath, formServiceBasePath, projectPath, - webDevPath, projectCmpList, expressionManifest); + webDevPath, relativePath, projectCmpList, expressionManifest); } diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI18nResourceList.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI18nResourceList.java deleted file mode 100644 index a1e07210f052e169c1613c32068edace4061d460..0000000000000000000000000000000000000000 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI18nResourceList.java +++ /dev/null @@ -1,51 +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.i18n; - -import com.inspur.edp.web.jitengine.i18nresource.GeneratedI8nResource; - -import java.util.ArrayList; -import java.util.List; - -/** - * description: - * - * @author Noah Guo - * @date 2020/06/03 - */ -public class GeneratedI18nResourceList { - - /// - /// 生成的资源项列表集合 - /// - public List ResourceList = new ArrayList<>(); - - - - /// - /// 增加资源项 - /// - /// - /// - public void Add(String key, String value) - { - GeneratedI8nResource generatedI8nResource=new GeneratedI8nResource(); - generatedI8nResource.setKey(key); - generatedI8nResource.setValue(value); - this.ResourceList.add(generatedI8nResource); - } -} diff --git a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI8nResource.java b/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI8nResource.java deleted file mode 100644 index 80a780786d5469be508aa32917cc0358df227542..0000000000000000000000000000000000000000 --- a/runtime-core/src/main/java/com/inspur/edp/web/jitruntimebuild/core/i18n/GeneratedI8nResource.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.i18n; - -/** - * description: - * - * @author Noah Guo - * @date 2020/06/03 - */ -public class GeneratedI8nResource { - /// - /// 生成资源项key - /// - private String key; - - /// - /// 生成资源项value - /// - private String value; - - public String getKey() { - return this.key; - } - - public void setKey(String value) { - this.key = value; - } - - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - -} diff --git a/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/FormScriptCacheContent.java b/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/FormScriptCacheContent.java index cfbd2d56fa1f52868bf8a0e6f6a29549aaed0751..33725ed0f5459cbacf274e2d6a20e4e427383b99 100644 --- a/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/FormScriptCacheContent.java +++ b/runtime-scriptcache-api/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/api/entity/FormScriptCacheContent.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity; -import com.inspur.edp.web.common.converter.WebEntityConverter; import com.inspur.edp.web.common.utility.StringUtility; import java.util.Date; diff --git a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/entity/FormScriptCacheContentEntity.java b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/entity/FormScriptCacheContentEntity.java index d002316aead06784252f832dea1a1dc46228836c..72b5fd1f46c5737894c39b2662ad686cc429093f 100644 --- a/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/entity/FormScriptCacheContentEntity.java +++ b/runtime-scriptcache/src/main/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/entity/FormScriptCacheContentEntity.java @@ -19,7 +19,6 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.domain.entity; import com.inspur.edp.web.common.converter.WebEntityConverter; import com.inspur.edp.web.common.encrypt.EncryptUtility; import com.inspur.edp.web.common.utility.CommonUtility; -import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.FormScriptCache; import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.FormScriptCacheContent; import lombok.Data; diff --git a/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/repository/FormProjectCacheRepositoryTest.java b/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/repository/FormProjectCacheRepositoryTest.java index be839ba722e37c5703f4b11f6e7e682098f4fd71..63592c0c27370e8aef98e5101ed69ebe87ef9a7c 100644 --- a/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/repository/FormProjectCacheRepositoryTest.java +++ b/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/domain/repository/FormProjectCacheRepositoryTest.java @@ -2,8 +2,6 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.domain.repository; import org.junit.Test; -import static org.junit.Assert.*; - public class FormProjectCacheRepositoryTest { @Test diff --git a/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGeneratorTest.java b/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGeneratorTest.java index b7b14b9a83f6ee7c37a31b2970b2b3923a69027c..ae0c2764108c5f04c285072577478b0b256c4292 100644 --- a/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGeneratorTest.java +++ b/runtime-scriptcache/src/test/java/com/inspur/edp/web/jitruntimebuild/scriptcache/localserver/LocalServerPathGeneratorTest.java @@ -3,10 +3,6 @@ package com.inspur.edp.web.jitruntimebuild.scriptcache.localserver; import com.inspur.edp.web.common.io.FileUtility; import org.junit.Test; -import java.io.File; - -import static org.junit.Assert.*; - public class LocalServerPathGeneratorTest { @Test diff --git a/web-appconfig-core/src/test/java/com/inspur/edp/web/appconfig/api/entity/GspAppConfigTest.java b/web-appconfig-core/src/test/java/com/inspur/edp/web/appconfig/api/entity/GspAppConfigTest.java index f254c735370d7415aeb21c82a9dc488eaa92aa68..983144b1f3c876c43d76e66f5836ca79c52bdfd2 100644 --- a/web-appconfig-core/src/test/java/com/inspur/edp/web/appconfig/api/entity/GspAppConfigTest.java +++ b/web-appconfig-core/src/test/java/com/inspur/edp/web/appconfig/api/entity/GspAppConfigTest.java @@ -2,8 +2,6 @@ package com.inspur.edp.web.appconfig.api.entity; import org.junit.Test; -import static org.junit.Assert.*; - public class GspAppConfigTest { @Test 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 f824778d2ac987703a027ee2a0d6064c40e15347..6732a73dd614b67314650f34b2d432d6ef4a51f1 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 @@ -17,11 +17,15 @@ package com.inspur.edp.web.common.entity; import com.inspur.edp.web.common.constant.FrontendProjectConstant; +import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.io.FileUtility; 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; /** * 表单类型 @@ -140,6 +144,7 @@ public enum TerminalType { return "mobiledev"; } + @Override public String getResolveBasePath(String projectPath, boolean isDynamicForm) { return FileUtility.combine(projectPath, FrontendProjectConstant.FRONTEND_PROJECT_COMPILE_PATH, this.getWebDevPathName()); @@ -207,6 +212,27 @@ public enum TerminalType { */ public abstract String getWebDevPathName(); + + /** + * 根据terminalType执行不同的supplier + * @param terminalType + * @param executeWithPCSupplier + * @param executeWithMobileSupplier + * @return + */ + public static String getCustomExecuteResult(TerminalType terminalType, Supplier executeWithPCSupplier, Supplier executeWithMobileSupplier) { + if (terminalType == TerminalType.MOBILE) { + if (executeWithMobileSupplier == null) { + throw new WebCustomException("executeWithMobileSupplier 不能为空"); + } + return executeWithMobileSupplier.get(); + } + if (executeWithPCSupplier == null) { + throw new WebCustomException("executeWithPCSupplier不能为空"); + } + return executeWithPCSupplier.get(); + } + /** * 获取指定类型的resolve 基础路径 * PC projectPath/src/webdev @@ -247,6 +273,72 @@ public enum TerminalType { */ public abstract String getFrameworkType(); + /** + * 是否 PC + * + * @param metadataType + * @return + */ + public static boolean isPC(String metadataType) { + return TerminalType.PC.getMetadataType().equals(metadataType); + } + + /** + * 是否 PC + * + * @param terminalType + * @return + */ + public static boolean isPC(TerminalType terminalType) { + return TerminalType.PC == terminalType; + } + + /** + * 是否 mobile + * + * @param terminalType + * @return + */ + public static boolean isMobile(TerminalType terminalType) { + return TerminalType.MOBILE == terminalType; + } + + /** + * 是否 Mobile + * + * @param metadataType + * @return + */ + public static boolean isMobile(String metadataType) { + return TerminalType.MOBILE.getMetadataType().equals(metadataType); + } + + /** + * 是否 PC 或 Mobile + * + * @param metadataType + * @return + */ + public static boolean isPCOrMobile(String metadataType) { + return isPC(metadataType) || isMobile(metadataType); + } + + + /** + * 针对 pc、mobile 循环执行其参数 + * 不会捕获异常 + * + * @param consumer + */ + public static void rescure(Consumer consumer) { + if (consumer == null) { + return; + } + + consumer.accept(TerminalType.PC); + consumer.accept(TerminalType.MOBILE); + } + /** * 获取表单相对路径,相对于metadata目录 * 获取PC 相对于metadata的目录路径,类似于 src/webdev/services 或 src/mobiledev/services diff --git a/web-common/src/main/java/com/inspur/edp/web/common/environment/ExecuteEnvironment.java b/web-common/src/main/java/com/inspur/edp/web/common/environment/ExecuteEnvironment.java index 105085fb9dce522bdbeb309264b7fdf94a9fa47b..d18f205c328af8027296acc499d17e97af28d2d9 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/environment/ExecuteEnvironment.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/environment/ExecuteEnvironment.java @@ -16,8 +16,6 @@ package com.inspur.edp.web.common.environment; -import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; - /** * 运行环境 位置 分为设计时及运行时、元数据部署工具 * diff --git a/web-common/src/main/java/com/inspur/edp/web/common/logger/WebLogger.java b/web-common/src/main/java/com/inspur/edp/web/common/logger/WebLogger.java index ab9d629b5b7e5b1ae801aaa0ee560f68abf2f2d3..0bb8d8b3c6b5890d697458b5bf52a49f4b61e826 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/logger/WebLogger.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/logger/WebLogger.java @@ -21,7 +21,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Arrays; -import java.util.function.Function; /** * @Title: WebLogger diff --git a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataGetterParameter.java b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataGetterParameter.java index b56eab18483f88c28e91d8d23be98b75d37f9fba..fa3b5a0ac3fc5f75b2b8e2c8534c4633b0042649 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataGetterParameter.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataGetterParameter.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.common.metadata; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.customexception.WebCustomException; -import com.inspur.edp.web.common.utility.StringUtility; import lombok.Data; import lombok.Getter; import lombok.Setter; diff --git a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataProjectUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataProjectUtility.java index df2afd41e9d74d8565ba775ff5a9a806461cee85..5e2cd275ff314bc28af9fe7d1bfd7d46708c5f91 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataProjectUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/metadata/MetadataProjectUtility.java @@ -21,6 +21,8 @@ import com.inspur.edp.lcm.metadata.api.service.MetadataProjectService; import com.inspur.edp.web.common.utility.StringUtility; import io.iec.edp.caf.commons.utils.SpringBeanUtils; +import java.util.Optional; + /** * 元数据工程信息utility * @@ -33,12 +35,12 @@ public class MetadataProjectUtility { * @param metadataRelativePath * @return */ - public static MetadataProject getMetadataProject(String metadataRelativePath) { + public static Optional getMetadataProject(String metadataRelativePath) { if (StringUtility.isNullOrEmpty(metadataRelativePath)) { - return null; + return Optional.empty(); } - return MetadataProjectServiceInstance.get().getMetadataProjInfo(metadataRelativePath); + return Optional.ofNullable(MetadataProjectServiceInstance.get().getMetadataProjInfo(metadataRelativePath)); } private static class MetadataProjectServiceInstance { 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 3d62acf6b53650ea612201cb37793381b52aa2e4..c11ee910eca6b0d0923848d6bc5b99af59b2665d 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 @@ -20,7 +20,6 @@ package com.inspur.edp.web.common.metadata; import com.inspur.edp.cdp.web.component.metadata.define.WebComponentMetadata; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.entity.MetadataProject; -import com.inspur.edp.lcm.metadata.api.entity.uri.MetadataURI; import com.inspur.edp.lcm.metadata.devcommon.ManagerUtils; import com.inspur.edp.web.command.component.metadata.*; import com.inspur.edp.web.common.customexception.WebCustomException; @@ -30,6 +29,7 @@ import com.inspur.edp.web.common.utility.StringUtility; import java.util.HashMap; import java.util.List; +import java.util.Optional; import java.util.function.Supplier; /** @@ -240,6 +240,7 @@ public final class MetadataUtility { /** * rtc-viewmodel存在调用 * 不允许更改对应方法名称 + * * @param metadataId * @return */ @@ -254,7 +255,7 @@ public final class MetadataUtility { * @param metadataRelativePath * @return */ - public MetadataProject getMetadataProject(String metadataRelativePath) { + public Optional getMetadataProject(String metadataRelativePath) { return MetadataProjectUtility.getMetadataProject(metadataRelativePath); } @@ -265,11 +266,9 @@ public final class MetadataUtility { * @return */ public String getMetadataProjectPath(String metadataRelativePath) { - MetadataProject projectInfo = getMetadataProject(metadataRelativePath); - if (projectInfo != null) { - return projectInfo.getProjectPath(); - } - return null; + Optional projectInfo = getMetadataProject(metadataRelativePath); + + return projectInfo.map(MetadataProject::getProjectPath).orElse(null); } /** diff --git a/web-common/src/main/java/com/inspur/edp/web/common/metadata/WebMetadataUri.java b/web-common/src/main/java/com/inspur/edp/web/common/metadata/WebMetadataUri.java index 0190c8ad4295fab247f56f992ffc773e4180b678..baf932fc85a569ecd2f6ca60db7692761e294f28 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/metadata/WebMetadataUri.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/metadata/WebMetadataUri.java @@ -17,9 +17,7 @@ package com.inspur.edp.web.common.metadata; import com.inspur.edp.lcm.metadata.api.entity.uri.MetadataURI; -import com.inspur.edp.web.common.utility.StringUtility; import lombok.Data; -import org.springframework.util.StringUtils; /** * 继承 MetadataUri 主要目的是重写其中的输出方法 diff --git a/web-common/src/main/java/com/inspur/edp/web/common/utility/CommonUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/utility/CommonUtility.java index 681ec70363cc8c32a645b8d7bf74db8253b8c1c1..b0c8157f4ea4b88133c47d6843c3c25eb834d6ef 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/utility/CommonUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/utility/CommonUtility.java @@ -19,7 +19,6 @@ package com.inspur.edp.web.common.utility; import java.lang.management.ManagementFactory; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.UUID; /** * description: diff --git a/web-common/src/main/java/com/inspur/edp/web/common/utility/DateUtility.java b/web-common/src/main/java/com/inspur/edp/web/common/utility/DateUtility.java index 5354d0035f7c8829ab2e361845c504ad51854ef9..e5fec94b9305343324c9bb5f032daa71ec733ef5 100644 --- a/web-common/src/main/java/com/inspur/edp/web/common/utility/DateUtility.java +++ b/web-common/src/main/java/com/inspur/edp/web/common/utility/DateUtility.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.common.utility; -import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; 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 357bb3ee2619f3908b3ceaf5d507b4c42c3ba3db..491fe10a47c6fcd9cd8f3312fcaad43b2c4a9131 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 @@ -18,7 +18,6 @@ package com.inspur.edp.web.common.utility; import org.apache.commons.lang3.StringUtils; -import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; @@ -268,6 +267,19 @@ public class StringUtility { return source.toString(); } + /** + * 获取对应值或默认值空字符串 + * + * @param source + * @return + */ + public static String getOrDefaultEmpty(Object source) { + if (source == null) { + return ""; + } + return source.toString(); + } + /** * 将null 转换成空字符串 * diff --git a/web-common/src/test/java/com/inspur/edp/web/common/environment/checker/ExecuteEnvironmentCheckerTest.java b/web-common/src/test/java/com/inspur/edp/web/common/environment/checker/ExecuteEnvironmentCheckerTest.java index 27d95f056777413ddfce32a37d4bf4e04a647071..c566a2056c8702bf80afbdc4d1907e52f200dda2 100644 --- a/web-common/src/test/java/com/inspur/edp/web/common/environment/checker/ExecuteEnvironmentCheckerTest.java +++ b/web-common/src/test/java/com/inspur/edp/web/common/environment/checker/ExecuteEnvironmentCheckerTest.java @@ -1,6 +1,5 @@ package com.inspur.edp.web.common.environment.checker; -import org.junit.Assert; import org.junit.Test; import static org.junit.Assert.*; 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 7c3bc9ea47b08e51b8bdd3580550ad212e22909a..df5c77ab2208470634e83c3ba7349efcd91fe210 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 @@ -1,15 +1,10 @@ package com.inspur.edp.web.common.io; -import junit.framework.TestCase; import org.junit.Assert; import org.junit.Test; import java.io.File; -import java.io.IOException; -import java.net.URI; import java.nio.file.*; -import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; diff --git a/web-common/src/test/java/com/inspur/edp/web/common/logger/WebLoggerTest.java b/web-common/src/test/java/com/inspur/edp/web/common/logger/WebLoggerTest.java index b65cd9f4d47fcd443906049e488c24a4c9f0e8c7..8e526a5864087c84b9f94fd4da7e03ee4f5f005b 100644 --- a/web-common/src/test/java/com/inspur/edp/web/common/logger/WebLoggerTest.java +++ b/web-common/src/test/java/com/inspur/edp/web/common/logger/WebLoggerTest.java @@ -1,13 +1,10 @@ package com.inspur.edp.web.common.logger; -import net.bytebuddy.utility.RandomString; import org.junit.Before; import org.junit.jupiter.api.Test; import java.util.Random; -import static org.junit.jupiter.api.Assertions.*; - /** * @Title: WebLoggerTest * @Description: com.inspur.edp.web.common.logger diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java index 93b76a56041faf3adb4e0de87509eff5ef9b3d4b..a4927d50b208c483eebb43d375118b87e58b22a0 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java @@ -21,7 +21,6 @@ import com.inspur.edp.bef.bizentity.GspBizEntityObject; import com.inspur.edp.bef.bizentity.GspBusinessEntity; import com.inspur.edp.cef.api.RefObject; import com.inspur.edp.cef.designtime.api.IGspCommonField; -import com.inspur.edp.cef.designtime.api.collection.GspAssociationCollection; import com.inspur.edp.cef.designtime.api.element.GspAssociation; import com.inspur.edp.cef.designtime.api.element.GspElementObjectType; import com.inspur.edp.formserver.viewmodel.GspViewModelElement; @@ -43,7 +42,6 @@ import com.inspur.edp.web.designschema.elements.type.FieldType; import com.inspur.edp.web.designschema.elements.type.ObjectType; import com.inspur.edp.web.designschema.udtextensiondef.FormUdtExtension; import io.iec.edp.caf.commons.exception.CAFRuntimeException; -import io.iec.edp.caf.commons.utils.SpringBeanUtils; import org.springframework.util.StringUtils; import java.util.*; diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/TypeBuildingContext.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/TypeBuildingContext.java index a1ffef4f192d350a1f1e7aa19b7a2033e07499c1..0d344aded185a03888ffb0da84a4d5a947b8eaaa 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/TypeBuildingContext.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/TypeBuildingContext.java @@ -34,10 +34,8 @@ import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.StringUtility; -import com.inspur.edp.web.designschema.udtextensiondef.FormUdtExtension; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringUtils; import java.util.HashMap; diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/NocodeDesignSchemaChangeListener.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/NocodeDesignSchemaChangeListener.java index 2aec3d283ccb20a001cc75f26c876eb6af959ab7..2d43c21e2931f0b3b0a8577e71d16524618fef1b 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/NocodeDesignSchemaChangeListener.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/synchronization/NocodeDesignSchemaChangeListener.java @@ -24,7 +24,6 @@ import com.inspur.edp.lcm.metadata.spi.event.nodecode.NoCodeAfterSaveArgs; import com.inspur.edp.lcm.metadata.spi.event.nodecode.NoCodeBeforeDeleteArgs; import com.inspur.edp.lcm.metadata.spi.event.nodecode.NoCodeBeforeSaveArgs; import com.inspur.edp.metadata.rtcustomization.api.CustomizationService; -import com.inspur.edp.web.designschema.synchronization.helplinkconfig.VoMetadataHelpLinkConfigModifierBeforeSaving; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; import io.iec.edp.caf.commons.utils.SpringBeanUtils; diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/webservice/DesignSchemaWebServiceImpl.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/webservice/DesignSchemaWebServiceImpl.java index 18362e50f6fe7cdcbb43d9fdad2885b9e289a137..dd0eb40406438e86dbce36a7b04694482417445c 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/webservice/DesignSchemaWebServiceImpl.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/webservice/DesignSchemaWebServiceImpl.java @@ -25,8 +25,6 @@ import com.inspur.edp.web.designschema.api.webservice.DesignSchemaWebService; import com.inspur.edp.web.designschema.elements.Schema; import com.inspur.edp.web.designschema.generator.SchemaBuilder; -import java.util.Arrays; - /** * description: * diff --git a/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/entity/FormMetadataInfo.java b/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/entity/FormMetadataInfo.java index 030793be7726d9c1ff475fa4added41df34ecc4d..1c2503104fac1c12bbcb04f216bfabbc2e718888 100644 --- a/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/entity/FormMetadataInfo.java +++ b/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/entity/FormMetadataInfo.java @@ -17,10 +17,6 @@ package com.inspur.edp.web.dynamicform.core.api.entity; import com.inspur.edp.web.common.utility.StringUtility; -import lombok.Data; - -import java.util.ArrayList; -import java.util.List; /** * 关联的表单元数据信息 diff --git a/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/webservice/DynamicFormWebService.java b/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/webservice/DynamicFormWebService.java index 74c6b2cb1ca8e0aed541f2e0331ad86bbc85f479..27d74aa1e85abeca7dd4a3847cb8a23fb4056581 100644 --- a/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/webservice/DynamicFormWebService.java +++ b/web-dynamic-form-api/src/main/java/com/inspur/edp/web/dynamicform/core/api/webservice/DynamicFormWebService.java @@ -21,7 +21,6 @@ import com.inspur.edp.web.dynamicform.core.api.entity.DynamicFormCreateEntity; import org.springframework.web.bind.annotation.RequestBody; import javax.ws.rs.Consumes; -import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; diff --git a/web-dynamic-form-api/src/test/java/com/inspur/edp/web/dynamicform/core/api/entity/FormTableInfoTest.java b/web-dynamic-form-api/src/test/java/com/inspur/edp/web/dynamicform/core/api/entity/FormTableInfoTest.java index 8d1da1e16615a52691f626bdf24b7b6851305381..71e642baf64ed0cf60bfe472240eea22b8c42fbf 100644 --- a/web-dynamic-form-api/src/test/java/com/inspur/edp/web/dynamicform/core/api/entity/FormTableInfoTest.java +++ b/web-dynamic-form-api/src/test/java/com/inspur/edp/web/dynamicform/core/api/entity/FormTableInfoTest.java @@ -21,8 +21,6 @@ package com.inspur.edp.web.dynamicform.core.api.entity; import org.junit.Assert; import org.junit.Test; -import static org.junit.Assert.*; - public class FormTableInfoTest { @Test diff --git a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadata.java b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadata.java index 8422d212d69b24439d3d81501ec8d193da1b4f9c..2000a73d915ef71ccb805d176004f2152504e656 100644 --- a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadata.java +++ b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadata.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.dynamicform.core.components; -import com.fasterxml.jackson.databind.JsonNode; import com.inspur.edp.web.common.serialize.SerializeUtility; import java.util.HashMap; diff --git a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/webservice/DynamicFormWebServiceImpl.java b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/webservice/DynamicFormWebServiceImpl.java index 0120e97f78972577a86107b98ce0dba4afd8766e..e987ba387123a0bacee498f5d7078386843cb040 100644 --- a/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/webservice/DynamicFormWebServiceImpl.java +++ b/web-dynamic-form-core/src/main/java/com/inspur/edp/web/dynamicform/core/webservice/DynamicFormWebServiceImpl.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.dynamicform.core.webservice; import com.inspur.edp.web.common.entity.ResultCode; import com.inspur.edp.web.common.entity.ResultMessage; -import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.dynamicform.core.api.entity.DynamicCreateFormMetadataParameter; import com.inspur.edp.web.dynamicform.core.api.entity.DynamicFormCreateEntity; import com.inspur.edp.web.dynamicform.core.api.entity.FormMetadataInfo; diff --git a/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadataTest.java b/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadataTest.java index 0eefea1b9536e3e74ea30a167d139e769261464b..b8931e20f6feceb124e38f4ef7fd63c76c9a1a53 100644 --- a/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadataTest.java +++ b/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/components/GridFieldComponentMetadataTest.java @@ -20,8 +20,6 @@ import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; - public class GridFieldComponentMetadataTest { @Test diff --git a/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/service/DynamicCreateFormMetadataServiceImplTest.java b/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/service/DynamicCreateFormMetadataServiceImplTest.java index 0b7c7bd5b74296f944e3ed956dea2cbd7318491b..5b81932244a61edf21b626a709ee3d7240d47f47 100644 --- a/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/service/DynamicCreateFormMetadataServiceImplTest.java +++ b/web-dynamic-form-core/src/test/java/com/inspur/edp/web/dynamicform/core/service/DynamicCreateFormMetadataServiceImplTest.java @@ -20,8 +20,6 @@ import com.inspur.edp.web.dynamicform.core.api.service.DynamicCreateFormMetadata import io.iec.edp.caf.commons.utils.SpringBeanUtils; import org.junit.Test; -import static org.junit.Assert.*; - public class DynamicCreateFormMetadataServiceImplTest { @Test diff --git a/web-dynamic-form-core/src/test/java/service/DynamicCreateFormMetadataServiceImplTest.java b/web-dynamic-form-core/src/test/java/service/DynamicCreateFormMetadataServiceImplTest.java index 047fca07e35cc394d2cc374c52edf55d09c2a4de..c077ea759cbc89c03d0d8ace4edf8db167d3a2f1 100644 --- a/web-dynamic-form-core/src/test/java/service/DynamicCreateFormMetadataServiceImplTest.java +++ b/web-dynamic-form-core/src/test/java/service/DynamicCreateFormMetadataServiceImplTest.java @@ -26,8 +26,6 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; -import static org.junit.Assert.*; - public class DynamicCreateFormMetadataServiceImplTest { @Test diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/JITEngineManager.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/JITEngineManager.java index 904ec5bc96c3ef769d6e54848bf2c53f802daaf7..8e65f5d54a84aa4d5cde0f39c496aa73b1636c54 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/JITEngineManager.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/JITEngineManager.java @@ -38,13 +38,9 @@ import com.inspur.edp.web.formmetadata.metadataanalysis.*; import com.inspur.edp.web.formmetadata.metadataanalysis.form.AnalysisExternalComponentResult; import com.inspur.edp.web.formmetadata.metadataanalysis.form.FormComponentParser; import com.inspur.edp.web.formmetadata.resolver.ResolveFormMetadataItem; -import com.inspur.edp.web.formmetadata.service.FormMetataService; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import com.inspur.edp.web.frontendproject.entity.FrontendProjectGenerateParameter; import com.inspur.edp.web.jitengine.babelgrnerate.GenerateForBabel; -import com.inspur.edp.web.jitengine.dynamicform.DynamicFormModuleOperation; -import com.inspur.edp.web.jitengine.dynamicform.htmltemplate.HtmlTemplateEntity; -import com.inspur.edp.web.jitengine.dynamicform.htmltemplate.HtmlTemplateGenerator; -import com.inspur.edp.web.jitengine.dynamicform.htmltemplate.HtmlTemplateManager; import com.inspur.edp.web.jitengine.expressions.ExpressionFormGenerator; import com.inspur.edp.web.jitengine.expressions.ExpressionManifest; import com.inspur.edp.web.jitengine.expressions.ModuleFormExpressions; @@ -58,14 +54,12 @@ import com.inspur.edp.web.npmpackage.core.npminstall.NodeModulesPathGenerator; import com.inspur.edp.web.npmpackage.core.npminstall.NpmInstallManager; import com.inspur.edp.web.npmpackage.core.npminstall.PackageJsonPathGenerator; import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingManager; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.List; -import java.util.Map; /** * JIT Engine 管理 @@ -147,12 +141,6 @@ public class JITEngineManager { } - public static void generateFrontendProject(String projectPath, String refNodeModulesBasePath, TerminalType terminalType) { - FrontendProjectGenerateParameter generateParameter = new FrontendProjectGenerateParameter(); - generateParameter.setProjectPath(projectPath); - generateFrontendProject(generateParameter, refNodeModulesBasePath, terminalType); - } - /** * 生成前端工程,目前仅支持生成 Angular 工程 */ @@ -161,7 +149,7 @@ public class JITEngineManager { return; } - boolean isJieXiForm = generateParameter != null && generateParameter.isForceUseJieXi(); + boolean isJieXiForm = generateParameter.isForceUseJieXi(); String currentProjectPath = generateParameter.getProjectPath(); String currentProjectName = GspProjectUtility.getProjectName(currentProjectPath); @@ -315,8 +303,6 @@ public class JITEngineManager { WebLogger.Instance.info("delete html template folder failed, the path is " + htmlTemplatePath + ", the trace is " + ex.getMessage() + ex.getStackTrace()); } - List htmlTemplateEntityList = HtmlTemplateManager.generate(htmlTemplatePath, json); - // 如果包含模板文件 那么执行编译 NodeJsCommandResult tscCommandResult = NodejsFunctionUtility.getTscCommandInServer(false); @@ -341,7 +327,7 @@ public class JITEngineManager { // WebLogger.Instance.info(rollupBuildResult, CommandServiceAnalysis.class.getName()); // } - String sourceBuildPath = FileUtility.combine(htmlTemplatePath, "dist-rollup","web-page-templates"); + String sourceBuildPath = FileUtility.combine(htmlTemplatePath, "dist-rollup", "web-page-templates"); if (FileUtility.exists(sourceBuildPath)) { String htmlTemplateFileDeployToFormFolder = FileUtility.combine(targetStorageBasePath, "htmltemplate"); if (FileUtility.exists(htmlTemplateFileDeployToFormFolder)) { @@ -387,19 +373,21 @@ public class JITEngineManager { FormComponentParser.getInstance().ExtractComponent(formDom, formMetadataName, targetStorageBasePath, webDevPath); // Resolve StateMachine - StateMachineAnalysis.resolveStateMachine(formDom, formMetadataName, targetStorageBasePath, webDevPath, projectPath, ExecuteEnvironment.Design, false); + StateMachineAnalysis stateMachineAnalysis=new StateMachineAnalysis(ExecuteEnvironment.Design,false); + stateMachineAnalysis.resolveStateMachine(formDom, formMetadataName, targetStorageBasePath, relativePath); } // Resolve Command // 增加是否解析表单参数 如果为解析表单 那么不再生成对应的command.json 文件 CommandsAnalysis commandsAnalysis = new CommandsAnalysis(ExecuteEnvironment.Design, false, !resolveFormMetadataItem.getCalculateIsDynamicForm()); - commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(resolveFormMetadataItem.getGspMetadata(), formDom), formMetadataName, targetStorageBasePath, projectCmpList, webDevPath, null); + commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(resolveFormMetadataItem.getGspMetadata(), formDom), + formMetadataName, targetStorageBasePath, projectCmpList); if (!resolveFormMetadataItem.getCalculateIsDynamicForm()) { // Resolve Eapi EapiAnalysis eapiAnalysis = new EapiAnalysis(ExecuteEnvironment.Design, false); String formNameSpace = resolveFormMetadataItem.getGspMetadata() == null ? "" : resolveFormMetadataItem.getGspMetadata().getHeader().getNameSpace(); - eapiAnalysis.resolveEapi(formDom, formMetadataName, targetStorageBasePath, projectPath, webDevPath, formNameSpace); + eapiAnalysis.resolveEapi(formDom, formMetadataName, targetStorageBasePath, formNameSpace, relativePath); } // Resolve Command Service @@ -425,7 +413,7 @@ public class JITEngineManager { // 递归解析 如果存在子组件 那么需要递归执行子组件 executeExternalComponent(formDom, baseFormPath, targetStorageBasePath, formServiceBasePath, projectPath, projectCmpList, webDevPath, - i18nResourceList, zhI18nResourceList, zhCHTI18nResourceList, expressionManifest, i18nResourceKeyPrefix, executeEnvironment, isUpdradeTool); + i18nResourceList, zhI18nResourceList, zhCHTI18nResourceList, relativePath, expressionManifest, i18nResourceKeyPrefix, executeEnvironment, isUpdradeTool); } } @@ -435,6 +423,7 @@ public class JITEngineManager { private static void executeExternalComponent(FormDOM json, String baseFormPath, String targetStorageBasePath, String formServicePath, String projectPath, HashMap projectCmpList, String webdevpath, GeneratedI18nResourceList i18nResourceList, GeneratedI18nResourceList zhI18nResourceList, GeneratedI18nResourceList zhCHTI18nResourceList, + String relativePath, ExpressionManifest expressionManifest, String i18nResourceKeyPrefix, ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { if (json != null && json.getModule() != null && json.getModule().getExternalComponents() != null && json.getModule().getExternalComponents().size() > 0) { @@ -449,7 +438,7 @@ public class JITEngineManager { externalVisualDom = null; // 如果是弹窗URL 那么不解析对应元数据 } else { - externalVisualDom = formAnalysis.analysisExternalComponent(targetStorageBasePath, json.getModule().getCode(), item, webdevpath); + externalVisualDom = formAnalysis.analysisExternalComponent(targetStorageBasePath, json.getModule().getCode(), relativePath, item, webdevpath); } @@ -515,7 +504,7 @@ public class JITEngineManager { */ private static void resolveExternalDependencyMetadata(GspMetadata formMetadata, String baseFormPath, FormDOM json, String targetStorageBasePath, GeneratedI18nResourceList zhResourceList, String baseRelativePath, String i18nResourcePrefix) { - List resourceList = FormMetataService.getFormResourceWithMetaData(formMetadata, I18nResourceConstant.ZH_CHS, baseFormPath); + List resourceList = FormMetadataService.getBeanInstance().getFormResourceWithMetaData(formMetadata, I18nResourceConstant.ZH_CHS, baseFormPath); if (resourceList != null && resourceList.size() > 0) { resourceList.forEach((item) -> { diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/constant/JitConstant.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/constant/JitConstant.java deleted file mode 100644 index f6db408ff2d9af1bc50862c3bd1450d172543433..0000000000000000000000000000000000000000 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/constant/JitConstant.java +++ /dev/null @@ -1,27 +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.jitengine.constant; - -/** - * description: - * - * @author Noah Guo - * @date 2021/01/14 - */ -public class JitConstant { - -} diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppComponentTsFileContentGenerator.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppComponentTsFileContentGenerator.java index 6894e8b0454e553ffb8c046fbefc3d75534e30ed..3654f0a4b4b0bd982234908d2e121649e4917907 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppComponentTsFileContentGenerator.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppComponentTsFileContentGenerator.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.jitengine.dynamicform; -import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.jitengine.dynamicform.htmltemplate.HtmlTemplateEntity; diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppModuleTsFileContentGenerator.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppModuleTsFileContentGenerator.java index e34c4347577fa5cbfb99abf5487674d4d5dc1be8..a480186fe5224a0ce4cfb0b7bce970a815473638 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppModuleTsFileContentGenerator.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/AppModuleTsFileContentGenerator.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.jitengine.dynamicform; -import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.jitengine.dynamicform.htmltemplate.HtmlTemplateEntity; import java.util.ArrayList; diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/HtmlTemplateManager.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/HtmlTemplateManager.java index 3d241c7566532476923029236f440cb91e7d8002..828c3b59a4d0dc2e4c082f93622b70ddc9bd7203 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/HtmlTemplateManager.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/HtmlTemplateManager.java @@ -26,7 +26,6 @@ import com.inspur.edp.web.jitengine.dynamicform.AppComponentTsFileContentGenerat import com.inspur.edp.web.jitengine.dynamicform.AppModuleTsFileContentGenerator; import com.inspur.edp.web.jitengine.dynamicform.TsConfigAppJsonFileGenerator; -import java.util.ArrayList; import java.util.List; public class HtmlTemplateManager { diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/AbstractHtmlTemplateExtractor.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/AbstractHtmlTemplateExtractor.java index 8cc4e6530854ff7bf3acbca0c9e1a0b37c955577..ee11dd8384d9913c77811007f0a92556fd45ece2 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/AbstractHtmlTemplateExtractor.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/AbstractHtmlTemplateExtractor.java @@ -100,7 +100,7 @@ public abstract class AbstractHtmlTemplateExtractor implements IHtmlTemplateExtr * 提取对应的html模板 * 子类覆盖该行为 进行html模板的提取 * - * @param currentComponent + * @param htmlTemplateEntityList * @return */ public abstract void extractHtmlTemplate(List htmlTemplateEntityList); diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/HtmlTemplateExtractorMap.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/HtmlTemplateExtractorMap.java index 387369c582f450e68c5b7eeb62320a4e8ffe1e2f..f98b6409e908e1fafa27ad6d9161b8f358d46a0d 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/HtmlTemplateExtractorMap.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/dynamicform/htmltemplate/htmltemplateextractor/HtmlTemplateExtractorMap.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.jitengine.dynamicform.htmltemplate.htmltemplateextractor; -import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.formmetadata.i18n.constant.ComponentType; import java.util.HashMap; diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/i18nresource/GenerateResourceManager.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/i18nresource/GenerateResourceManager.java index e717c34271a4b48f85bda44d8a6db2f1d5f7bec1..502bf179ee32a02bbf2cefd8be66c96edac6e56a 100644 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/i18nresource/GenerateResourceManager.java +++ b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/i18nresource/GenerateResourceManager.java @@ -22,7 +22,7 @@ import com.inspur.edp.lcm.metadata.api.entity.I18nResourceItem; 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 com.inspur.edp.web.formmetadata.service.FormMetataService; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import java.util.Arrays; import java.util.List; @@ -67,7 +67,8 @@ public class GenerateResourceManager { String keyPrefix, String language) { try { - List resourceList = FormMetataService.getFormResourceWithMetaData(metadata, language, baseFormPath); + + List resourceList = FormMetadataService.getBeanInstance().getFormResourceWithMetaData(metadata, language, baseFormPath); if (resourceList != null && !resourceList.isEmpty()) { if (!StringUtility.isBlank(keyPrefix)) { diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/metadataanalysis/CommandsAnalysis.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/metadataanalysis/CommandsAnalysis.java deleted file mode 100644 index 88fe51834fc5d03bf81de6350ce1b0a7c49e95d5..0000000000000000000000000000000000000000 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/metadataanalysis/CommandsAnalysis.java +++ /dev/null @@ -1,282 +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.jitengine.metadataanalysis; - -import com.inspur.edp.cdp.web.component.metadata.define.WebComponentMetadata; -import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; -import com.inspur.edp.web.command.component.metadata.*; -import com.inspur.edp.web.common.environment.ExecuteEnvironment; -import com.inspur.edp.web.common.logger.WebLogger; -import com.inspur.edp.web.common.metadata.MetadataGetterParameter; -import com.inspur.edp.web.common.metadata.MetadataTypeEnum; -import com.inspur.edp.web.common.serialize.SerializeUtility; -import com.inspur.edp.web.common.utility.StringUtility; -import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; -import com.inspur.edp.web.formmetadata.metadatamanager.CommandsMetadataManager; -import com.inspur.edp.web.formmetadata.metadatamanager.ComponentMetadataManager; - -import java.util.*; - -/** - * 命令解析 - * - * @author noah - */ - -public class CommandsAnalysis { - private ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Design; - private boolean isUpdradeTool = false; - // 是否生成command.json 文件 - private boolean createCommandJsonFile = true; - - public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; - } - - public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, boolean createCommandJsonFile) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; - this.createCommandJsonFile = createCommandJsonFile; - } - - - public void resolveCommand(FormDOM json, String formMetadataName, String targetStoragePath, - HashMap projectCmpList, - String webDevPath, String fileName) { - HashMap cmpList = new HashMap<>(8); - CommandsMetadataManager cmdManager = new CommandsMetadataManager(this.executeEnvironment, this.isUpdradeTool); - ComponentMetadataManager componentMetadataManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpdradeTool); - StringBuilder sbCommands = new StringBuilder(); - sbCommands.append("{"); - if (json.getModule() != null && json.getModule().getWebcmds() != null && json.getModule().getWebcmds().size() > 0) { - sbCommands.append("\"commands\":{"); - int index = 0; - WebCommandsMetadata metadata; - String cmdId; - for (HashMap c : json.getModule().getWebcmds()) { - if (index > 0) { - sbCommands.append(","); - } - cmdId = c.get("id").toString(); - GspMetadata commandMetadata = cmdManager.getWebCommands(cmdId, StringUtility.getOrDefault(c.get("code"), "").toString(), StringUtility.getOrDefault(c.get("name"), ""), StringUtility.getOrDefault(c.get("nameSpace"), "")); - metadata = (WebCommandsMetadata) commandMetadata.getContent(); - analysisComponentMetadata(metadata, cmpList, null, componentMetadataManager, projectCmpList); - - try { - analysisServiceRef(json, cmpList); - } catch (Exception e) { - WebLogger.Instance.error(e); - return; - } - - sbCommands.append("\"").append(cmdId).append("\":"); - sbCommands.append(cmdManager.serialize(metadata)); - index += 1; - } - sbCommands.append("}"); - - if (cmpList.size() > 0) { - sbCommands.append(",\"serviceList\":["); - index = 0; - - Iterator iter = cmpList.entrySet().iterator(); - while (iter.hasNext()) { - HashMap.Entry entry = (HashMap.Entry) iter.next(); - if (index > 0) { - sbCommands.append(","); - } - sbCommands.append(SerializeUtility.getInstance().serialize(entry.getValue(), false)); - index += 1; - } - sbCommands.append("]"); - } - } - sbCommands.append("}"); - - if (StringUtility.isNullOrEmpty(fileName)) { - fileName = json.getModule().getCode().toLowerCase(); - } - if (this.createCommandJsonFile) { - cmdManager.saveMetadataFile(targetStoragePath, formMetadataName.toLowerCase() + ".command.json", sbCommands.toString()); - } - - } - - private void analysisComponentMetadata(WebCommandsMetadata metadata, HashMap cmpList, - List items, ComponentMetadataManager cmpManager, - HashMap projectCmpList) { - if (items == null || items.size() == 0) { - if (metadata.getCommands() != null && metadata.getCommands().size() > 0) { - for (WebCommand webCommandItem : metadata.getCommands()) { - try { - analysisComponentCommandItemList(webCommandItem.getItems(), cmpList, cmpManager, projectCmpList); - } catch (Exception e) { - WebLogger.Instance.error(e); - } - } - } - } else { - for (BranchCommandItem branchCommandItem : items) { - try { - analysisComponentCommandItemList(branchCommandItem.getItems(), cmpList, cmpManager, projectCmpList); - } catch (Exception e) { - WebLogger.Instance.error(e); - } - } - } - } - - /// - /// 解析commandItem - /// - /// - /// - /// - private void analysisComponentCommandItemList(List commandItemList, HashMap cmpList, - ComponentMetadataManager cmpManager, HashMap projectCmpList) throws Exception { - if (commandItemList != null && commandItemList.size() > 0) { - if (cmpManager == null) { - cmpManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpdradeTool); - } - WebComponentMetadata cmpMetadata = null; - for (CommandItem item : commandItemList) { - switch (item.getItemType()) { - case MethodRefer: - if (!cmpList.containsKey(((CmpMethodRefering) item).getComponentId())) { - if (!projectCmpList.containsKey(((CmpMethodRefering) item).getComponentId())) { - try { - CmpMethodRefering cmpMethodReferingItem = (CmpMethodRefering) item; - cmpMetadata = cmpManager.getComponentMetadata(cmpMethodReferingItem.getComponentId(), cmpMethodReferingItem.getCode(), cmpMethodReferingItem.getName(), cmpMethodReferingItem.getComponentPath()); - if (cmpMetadata == null) { - throw new Exception("标识为'" + ((CmpMethodRefering) item).getComponentId() + "'的服务构件为null。"); - } - WebLogger.Instance.info("Get WebCommands By Id:" + cmpMetadata.getId(), this.getClass().getName()); - cmpList.put(cmpMetadata.getId(), cmpMetadata); - projectCmpList.put(cmpMetadata.getId(), cmpMetadata); - } catch (Exception ex) { - throw new Exception("获取command元数据" + ((CmpMethodRefering) item).getComponentId() + "失败", ex); - } - } else { - cmpMetadata = projectCmpList.get(((CmpMethodRefering) item).getComponentId()); - cmpList.put(cmpMetadata.getId(), cmpMetadata); - } - } - break; - case BranchCollection: - analysisComponentMetadata(null, cmpList, ((BranchCollectionCommandItem) item).getItems(), cmpManager, projectCmpList); - break; - default: - break; - - } - } - } - } - - private void analysisServiceRef(FormDOM json, HashMap cmpList) throws Exception { - if (cmpList != null && cmpList.size() > 0) { - - Iterator iter = cmpList.entrySet().iterator(); - while (iter.hasNext()) { - HashMap.Entry entry = (HashMap.Entry) iter.next(); - - HashMap serviceRef = new HashMap<>(); - WebComponentMetadata component = (WebComponentMetadata) entry.getValue(); - if (component == null) { - throw new RuntimeException("不存在标识为'" + entry.getKey() + "'的服务构件"); - } - - if (!hasServiceReference(json.getModule().getServiceRefs(), component)) { - serviceRef.put("cmpId", component.getId()); - serviceRef.put("name", component.getClassName()); - String path = component.getSource(); - if (path == null || path.isEmpty()) { - path = getTSFileName(component.getId()); - component.setSource(path); - } - serviceRef.put("path", path); - - serviceRef.put("isCommon", component.isCommon() ? "1" : "0"); - serviceRef.put("alias", component.getClassName() + "1"); - - json.getModule().getServiceRefs().add(serviceRef); - } - } - } - } - - private boolean hasServiceReference(List> serviceReferenceList, WebComponentMetadata component) { - boolean flag = false; - for (HashMap serviceRef : serviceReferenceList) { - if (serviceRef.containsKey("name") && serviceRef.containsKey("path")) { - if (serviceRef.get("name") == null) { - throw new RuntimeException("标识为'{" + serviceRef.get("cmpId") + "'的服务构件name属性不允许为null。"); - } - - if (serviceRef.get("path") == null) { - throw new RuntimeException("标识为'" + serviceRef.get("cmpId") + "'的服务构件path属性不允许为null。"); - } - - if (serviceRef.get("name").toString().equals(component.getClassName()) && - serviceRef.get("path") == component.getSource()) { - flag = true; - break; - } - } - } - return flag; - } - - /** - * 获取ts文件路径和名称 - */ - private String getTSFileName(String cmpId) throws Exception { - // 最理想的方式:路径来自webcmp构件路径,名称来自path(即元数据的Source属性) - // 先用webcmp的文件名构造,后续可以考虑调整 - if (cmpId == null || cmpId.isEmpty()) { - throw new Exception("获取ts文件名出错,对应的web构件id不能为空。"); - } - - CommandsMetadataManager manager = new CommandsMetadataManager(this.executeEnvironment, this.isUpdradeTool); - GspMetadata metadata = manager.getMetadata(() -> { - MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(cmpId); - getterMetadataInfo.setMetadataType(MetadataTypeEnum.TS); - return getterMetadataInfo; - }, null, null); - - if (metadata == null) { - throw new RuntimeException("load command metatdata is null,commandId is " + cmpId); - } - - String path = metadata.getRelativePath(); - String cmpFileName = metadata.getHeader().getFileName(); - // 后缀为.webcmp - int suffixIndex = cmpFileName.lastIndexOf(".webcmp"); - String fileName; - if (suffixIndex > 0 && suffixIndex + 7 == cmpFileName.length()) { - fileName = cmpFileName.substring(0, suffixIndex); - } else if (cmpFileName.contains(metadata.getHeader().getCode())) { - fileName = cmpFileName; - } else { - throw new Exception("获取ts文件名出错,web构件上获取的文件名不对。"); - } - - return path + "/" + fileName + ".ts"; - } -} diff --git a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/utility/PathUtility.java b/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/utility/PathUtility.java deleted file mode 100644 index 5bcecddf8ce6c3345e5ceb50ae7df0269cdf9e6c..0000000000000000000000000000000000000000 --- a/web-form-jitengine/src/main/java/com/inspur/edp/web/jitengine/utility/PathUtility.java +++ /dev/null @@ -1,59 +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.jitengine.utility; - - -import com.inspur.edp.web.common.io.FileUtility; - -/** - * TODO n转j - */ -public class PathUtility -{ - public static String DIRECTORY_SEPARATOR_CHAR = FileUtility.DIRECTORY_SEPARATOR_CHAR; - - //public static String DOM_FILE_PATH = java.nio.file.Paths.get(GspServiceUnitPathService.GetPath("main")).resolve("web/webdev/").toString().Replace("/", DIRECTORY_SEPARATOR_CHAR).replace("\\", DIRECTORY_SEPARATOR_CHAR); - public static String DOM_FILE_PATH = ""; - //public static String WEB_COMPILE_SERVER = java.nio.file.Paths.get(GspServiceUnitPathService.GetPath("main")).resolve("web/webidedebug/").toString().Replace("/", DIRECTORY_SEPARATOR_CHAR).replace("\\", DIRECTORY_SEPARATOR_CHAR); - public static String WEB_COMPILE_SERVER = ""; - //public static String WEB_DEGUG_SERVER_ROUTE_CONFIG = java.nio.file.Paths.get(GspServiceUnitPathService.GetPath("main")).resolve("web/webidedebug/src/assets/").toString().Replace("/", DIRECTORY_SEPARATOR_CHAR).replace("\\", DIRECTORY_SEPARATOR_CHAR); - public static String WEB_DEGUG_SERVER_ROUTE_CONFIG =""; - - @Deprecated - public static String getProjectTemplatePath() - { - return ""; - } - - public static String getAppDebugPath(String projectName) - { - return ""; - //return java.nio.file.Paths.get(GspServiceUnitPathService.GetPath("main")).resolve("web/webidedebug/package/" + projectName).toString().Replace("/", DIRECTORY_SEPARATOR_CHAR).replace("\\", DIRECTORY_SEPARATOR_CHAR); - } - - public static String getPublishPath(String projectName) - { - return ""; - //return FileUtility.combine(GspServiceUnitPathService.GetPath("main"), "web/webidedebug/package", projectName, "src/app/modules/", projectName).Replace("/", DIRECTORY_SEPARATOR_CHAR).Replace("\\", DIRECTORY_SEPARATOR_CHAR); - } - - public static String getModuleCompileInfo(String projectName) - { - return ""; - //return FileUtility.combine(GspServiceUnitPathService.GetPath("main"), "web/webidedebug/package", projectName, "src/assets").replace("/", DIRECTORY_SEPARATOR_CHAR).replace("\\", DIRECTORY_SEPARATOR_CHAR); - } -} diff --git a/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/JITEngineManagerTest.java b/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/JITEngineManagerTest.java index d1a6823146e1ce7838019ca4b7c4a5e8d48ac732..90ee78c2de2efb29e689d06f1dd8eb1742f95dca 100644 --- a/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/JITEngineManagerTest.java +++ b/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/JITEngineManagerTest.java @@ -5,8 +5,6 @@ import org.junit.Test; import java.util.Arrays; import java.util.List; -import static org.junit.Assert.*; - public class JITEngineManagerTest { @Test diff --git a/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/metadataanalysis/EapiAnalysisTest.java b/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/metadataanalysis/EapiAnalysisTest.java index 3f37357964deb65bd0ec4e5a8f310e667514f7dd..59dcf05cf887a6b581054b0c4990bd8aa7cb5daf 100644 --- a/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/metadataanalysis/EapiAnalysisTest.java +++ b/web-form-jitengine/src/test/java/com/inspur/edp/web/jitengine/metadataanalysis/EapiAnalysisTest.java @@ -20,8 +20,6 @@ import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; - public class EapiAnalysisTest { @Test public void testHashMap() { diff --git a/web-form-jitengine/src/test/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImplTest.java b/web-form-jitengine/src/test/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImplTest.java index a48f483bd80d069b9ce5b3180fe216652744e86e..cf78c9f8350d46fb054c5beea6b6c85287658eaf 100644 --- a/web-form-jitengine/src/test/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImplTest.java +++ b/web-form-jitengine/src/test/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImplTest.java @@ -2,8 +2,6 @@ package com.inspur.edp.web.npmpackage.core.webservice; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class NpmPacakgeWebServiceImplTest { @Test diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/config/FormMetadataConfiguration.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/config/FormMetadataConfiguration.java index 5ba5c2e84dcfdc13868db458310db65c3f09696f..bdae80ce06dad6e3dfbd390507e1dfe209904c91 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/config/FormMetadataConfiguration.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/config/FormMetadataConfiguration.java @@ -17,9 +17,11 @@ package com.inspur.edp.web.formmetadata.config; import com.inspur.edp.web.formmetadata.api.FormMetadataCommonService; +import com.inspur.edp.web.formmetadata.formresource.FormResourceManager; import com.inspur.edp.web.formmetadata.lic.FormMetadataCreateLicControlListener; import com.inspur.edp.web.formmetadata.service.FormMetadataCommonServiceImpl; import com.inspur.edp.web.formmetadata.service.FormMetadataRTService; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import com.inspur.edp.web.formmetadata.service.FormRelateMetadataService; import com.inspur.edp.web.formmetadata.webservice.FormMetadataWebServiceImpl; import io.iec.edp.caf.rest.RESTEndpoint; @@ -48,8 +50,18 @@ public class FormMetadataConfiguration { return new FormMetadataCreateLicControlListener(); } + @Bean + public FormMetadataService getFormMetadataService() { + return new FormMetadataService(); + } + @Bean public FormRelateMetadataService getFormRelateMetadataService() { return new FormRelateMetadataService(); } + + @Bean + public FormResourceManager getFormResourceManager() { + return new FormResourceManager(); + } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/event/FormMetadataSaveEventListener.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/event/FormMetadataSaveEventListener.java index 3672f9ac4d218be47394b9765c6761f039b05d92..13bef48ffec7db014f816189c191c1346b571939 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/event/FormMetadataSaveEventListener.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/event/FormMetadataSaveEventListener.java @@ -31,7 +31,7 @@ import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.formmetadata.entity.ResourceMetadataType; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; -import com.inspur.edp.web.formmetadata.service.FormMetataService; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import java.io.File; @@ -42,8 +42,6 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; -import static com.inspur.edp.web.common.entity.TerminalType.MOBILE; - /** * @author guozhiqi */ @@ -67,16 +65,8 @@ public class FormMetadataSaveEventListener implements MetadataEventListener { return; } - - if (TerminalType.PC.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { - // 同步本地语言包 - SyncLocalLanguagePackage(metadataEventArgs.getMetadata()); - } } - private void SyncLocalLanguagePackage(GspMetadata formMetadata) { - FormMetataService.exportLanguagePackage(formMetadata); - } @Override public void fireMetadataDeletingEvent(MetadataEventArgs metadataEventArgs) { @@ -173,8 +163,7 @@ public class FormMetadataSaveEventListener implements MetadataEventListener { * @return */ private boolean isPcOrMobileForm(MetadataEventArgs metadataEventArgs) { - return TerminalType.PC.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType()) || - TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType()); + return TerminalType.isPCOrMobile(metadataEventArgs.getMetadata().getHeader().getType()); } /** diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/formresource/FormResourceManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/formresource/FormResourceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..8cfa310265cc6dbb4cd39be262fd942f30486e54 --- /dev/null +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/formresource/FormResourceManager.java @@ -0,0 +1,55 @@ +package com.inspur.edp.web.formmetadata.formresource; + +import com.inspur.edp.i18n.resource.api.II18nResourceDTManager; +import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; +import com.inspur.edp.lcm.metadata.api.entity.I18nResource; +import com.inspur.edp.lcm.metadata.api.exception.MetadataNotFoundException; +import com.inspur.edp.web.common.logger.WebLogger; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 表单关联资源元数据 + * + * @author noah + * 2023/7/8 17:19 + */ +public class FormResourceManager { + /** + * 根据表单元数据获取对应的资源列表 + * + * @param metadata 元数据信息* + * @param language 语言列表 + * @param baseFormPath 传递的基础表单的路径 针对组合表单,传递的也是基础表单的路径 + */ + public List getFormResourceWithMetaData(GspMetadata metadata, String language, String baseFormPath) { + II18nResourceDTManager resourceDtManager = SpringBeanUtils.getBean(II18nResourceDTManager.class); + // 当前语言未生效 + try { + List resourceList = resourceDtManager.getI18nResource(metadata, language, baseFormPath); + // 按语言进行过滤 + if (resourceList != null && resourceList.size() > 0) { + resourceList = resourceList + .stream() + .filter((t) -> language.equals(t.getLanguage())) + .collect(Collectors.toList()); + } + return resourceList; + } catch (MetadataNotFoundException ex) { + WebLogger.Instance.warn(ex.getMessage() + ex.getStackTrace()); + } catch (Exception ex) { + // 排除掉找不到对应的资源文件的异常 + String fileNotFoundException = "java.io.FileNotFoundException"; + if (ex.getMessage() != null && ex.getMessage().contains(fileNotFoundException)) { + WebLogger.Instance.warn(ex.getMessage()); + } else { + WebLogger.Instance.error(ex); + throw ex; + } + } + return new ArrayList<>(); + } +} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java index 5c77a42baa7582f636288c78f75164b50907f4b2..711274ff9cc686d21d247676e35d40d4efbd3907 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/FormMetadataI18nService.java @@ -25,7 +25,6 @@ import com.inspur.edp.lcm.metadata.api.entity.ResourceType; import com.inspur.edp.lcm.metadata.spi.MetadataI18nService; import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.common.utility.StringUtility; -import com.inspur.edp.web.formmetadata.i18n.component.strategy.i18nresourcestrategy.AppointmentCalendarResourceStrategy; import com.inspur.edp.web.formmetadata.i18n.component.strategy.i18nresourcestrategy.ModelToolbarI18nResourceStrategy; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java index 0b5f8bf15e8f7c073a6a03a704eb8f085d79af36..1012589cdb8834642d0c74e814271f475b7fc02d 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/ComponentType.java @@ -21,7 +21,7 @@ package com.inspur.edp.web.formmetadata.i18n.constant; * * @author noah */ -public class ComponentType { +public final class ComponentType { private ComponentType() { } ///#region 组件类型 diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/I18nResourceConstant.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/I18nResourceConstant.java index e16a67a5a2d7b187e1bd9c64e03e2048e4bf4e58..4e696c4f6aa38e589ab57fec3b0771b1709f2d00 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/I18nResourceConstant.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/i18n/constant/I18nResourceConstant.java @@ -16,7 +16,7 @@ package com.inspur.edp.web.formmetadata.i18n.constant; -public class I18nResourceConstant { +public final class I18nResourceConstant { /** * 资源项第一级分隔符 逗号 */ diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/manager/FormMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/manager/FormMetadataManager.java deleted file mode 100644 index 3deafcf897c18471cedcf4f4171b9aef889859e1..0000000000000000000000000000000000000000 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/manager/FormMetadataManager.java +++ /dev/null @@ -1,71 +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.formmetadata.manager; - -import com.inspur.edp.web.common.entity.ResultMessage; -import com.inspur.edp.web.formmetadata.service.FormMetataService; -import io.iec.edp.caf.i18n.framework.api.language.EcpLanguage; - -import java.util.List; - -/** - * 表单元数据manager - * - * @author guozhiqi - */ -public class FormMetadataManager { - /** - * 私有构造函数,避免继承与外部实例化 - */ - private FormMetadataManager() { - - } - - public static FormMetadataManager getNewInstance() { - return new FormMetadataManager(); - } - - public final void synchronizeLanuagePackage(String formMetadataFileName, String formMetadataPath) { - FormMetataService.synchronizeLanuagePackage(formMetadataFileName, formMetadataPath); - } - - public final void exportLanguagePackage(String formMetadataFileName, String formMetadataPath) { - FormMetataService.exportLanguagePackage(formMetadataFileName, formMetadataPath); - } - - public final void synchronizeLocalLanuagePackage(String formMetadataFileName, String formMetadataPath) { - FormMetataService.synchronizeLocalLanuagePackage(formMetadataFileName, formMetadataPath); - } - - public final List getEnabledLanguageList() { - return FormMetataService.getEnabledLanguageList(); - } - - public final List getBuiltinLanguageList() { - return FormMetataService.getBuiltinLanguageList(); - } - - public final List getAllLanguageList() { - return FormMetataService.getAllLanguageList(); - } - - public final ResultMessage replicateForm(String sourceMetadataId, String sourceMetadataRelativePath, String targetMetadataCode, String targetMetadataName, String targetProjectName) { - return FormMetataService.replicateForm(sourceMetadataId, sourceMetadataRelativePath, targetMetadataCode, targetMetadataName, targetProjectName); - } - - -} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/formdom/FormDomService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/formdom/FormDomService.java index a281111e348be71179b1a91faa1259ce14471ba4..0d1820db5a346417c834615b87fa7c8070b49cf6 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/formdom/FormDomService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/formdom/FormDomService.java @@ -49,15 +49,5 @@ public class FormDomService } - public final HashMap> GetLanguagePackage(FormDOM formDOM) - { - if (formDOM == null) - { - return null; - } - - return ModuleService.GetInstance().GetLanguagePackage(formDOM.getModule()); - } - } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/Module.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/Module.java index f3dbd04b35a2bec16072f88215e606c8f39f4733..0a3466c353f5d4c5925ed8fde957b6b1577bdbfa 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/Module.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/Module.java @@ -273,30 +273,6 @@ public class Module { externalComponents = value; } - /** - * TODO:升级结构后移除 - * 语言包 - * <语言, <控件id, 语言翻译>> - * 示例如下: - * "ctrlLangs": { - * "en": { - * "page-header-title": "cardForm1", - * "form_id": "id", - * "form_code": "code", - * "form_name": "name" - * } - * }, - */ - private HashMap> ctrlLangs; - - public final HashMap> getCtrlLangs() { - return ctrlLangs; - } - - public final void setCtrlLangs(HashMap> value) { - ctrlLangs = value; - } - /** * 国际化设置 */ diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/ModuleService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/ModuleService.java index eacf25de4afcc2425ce1ec82852fdbe60c47bc61..b8ddfe724460fbbbf019f722c8bfa739eb02b5af 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/ModuleService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadata/module/ModuleService.java @@ -16,8 +16,6 @@ package com.inspur.edp.web.formmetadata.metadata.module; -import java.util.*; - /** * 模块服务 */ @@ -41,11 +39,4 @@ public class ModuleService { return module.getI18nSetting().getlanguage(); } - public final HashMap> GetLanguagePackage(Module module) { - if (module == null) { - return null; - } - - return module.getCtrlLangs(); - } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/AbstractMetadataAnalysis.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/AbstractMetadataAnalysis.java new file mode 100644 index 0000000000000000000000000000000000000000..1f8d3518398de3220f226646dedbeadd18d59bf9 --- /dev/null +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/AbstractMetadataAnalysis.java @@ -0,0 +1,17 @@ +package com.inspur.edp.web.formmetadata.metadataanalysis; + +import com.inspur.edp.web.common.environment.ExecuteEnvironment; + +/** + * @author noah + * 2023/7/9 16:24 + */ +public abstract class AbstractMetadataAnalysis { + protected ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Design; + protected boolean isUpgradeTool = false; + + public AbstractMetadataAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + this.isUpgradeTool = isUpgradeTool; + this.executeEnvironment = executeEnvironment; + } +} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/CommandsAnalysis.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/CommandsAnalysis.java index 89bbff84e32345acb1d2f0ce650a4faab1038fe5..7d38aee68cf5b841cf022268de3c194cd26bbd35 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/CommandsAnalysis.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/CommandsAnalysis.java @@ -25,15 +25,16 @@ import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.serialize.SerializeUtility; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.formmetadata.api.dto.FormRelateMetadataInDesignResultDto; import com.inspur.edp.web.formmetadata.api.dto.RelateMetadataTypeEnum; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.formmetadata.metadatamanager.CommandsMetadataManager; import com.inspur.edp.web.formmetadata.metadatamanager.ComponentMetadataManager; +import com.inspur.edp.web.formmetadata.metadatamanager.MetadataManagerParameter; import io.iec.edp.caf.boot.context.CAFContext; import io.iec.edp.caf.core.session.CafSession; -import lombok.Data; import lombok.Getter; import java.util.HashMap; @@ -50,32 +51,29 @@ import java.util.concurrent.atomic.AtomicInteger; * @author noah */ -public class CommandsAnalysis { - private ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Design; - private boolean isUpdradeTool = false; +public class CommandsAnalysis extends AbstractMetadataAnalysis { + // 是否生成command.json 文件 private boolean createCommandJsonFile = true; /** * web 命令元数据列表 */ - private HashMap webCommandsMetadataHashMap; + private Map webCommandsMetadataHashMap; - public HashMap getWebCommandsMetadataHashMap() { + public Map getWebCommandsMetadataHashMap() { if (this.webCommandsMetadataHashMap == null) { this.webCommandsMetadataHashMap = new HashMap<>(); } return this.webCommandsMetadataHashMap; } - public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; + public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + this(executeEnvironment, isUpgradeTool, true); } - public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, boolean createCommandJsonFile) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; + public CommandsAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool, boolean createCommandJsonFile) { + super(executeEnvironment, isUpgradeTool); this.createCommandJsonFile = createCommandJsonFile; } @@ -87,8 +85,21 @@ public class CommandsAnalysis { public static class ResolveCommandParameter { private FormDOM json; + /** + * 关联的表单元数据信息 + */ private GspMetadata formMetadata; + /** + * 获取表单元数据的相对路径 + * 如果对应表单元数据为空,那么对应的相对路径参数为空 + * + * @return + */ + public String getFormMetadataRelativePath() { + return this.formMetadata == null ? null : this.formMetadata.getRelativePath(); + } + public static ResolveCommandParameter init(GspMetadata formMetadata, FormDOM formDOM) { ResolveCommandParameter parameter = new ResolveCommandParameter(); parameter.json = formDOM; @@ -98,15 +109,15 @@ public class CommandsAnalysis { } public void resolveCommand(ResolveCommandParameter parameter, String formMetadataName, String targetStoragePath, - HashMap projectCmpList, - String webDevPath, String fileName) { + HashMap projectCmpList) { HashMap cmpList = new HashMap<>(8); - String strFormRelativePath = parameter.getFormMetadata() == null ? null : parameter.getFormMetadata().getRelativePath(); - CommandsMetadataManager cmdManager = new CommandsMetadataManager(this.executeEnvironment, this.isUpdradeTool, strFormRelativePath); - ComponentMetadataManager componentMetadataManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpdradeTool, strFormRelativePath); + String strFormRelativePath = parameter.getFormMetadataRelativePath(); + CommandsMetadataManager cmdManager = new CommandsMetadataManager(this.executeEnvironment, strFormRelativePath, this.isUpgradeTool); + ComponentMetadataManager componentMetadataManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpgradeTool, strFormRelativePath); StringBuilder sbCommands = new StringBuilder(); sbCommands.append("{"); - if (parameter.getJson().getModule() != null && parameter.getJson().getModule().getWebcmds() != null && parameter.getJson().getModule().getWebcmds().size() > 0) { + if (parameter.getJson().getModule() != null && + ListUtility.isNotEmpty(parameter.getJson().getModule().getWebcmds())) { sbCommands.append("\"commands\":{"); int index = 0; WebCommandsMetadata metadata; @@ -117,13 +128,18 @@ public class CommandsAnalysis { } cmdId = c.get("id").toString(); - GspMetadata commandMetadata = cmdManager.getWebCommands(cmdId, StringUtility.getOrDefault(c.get("code"), ""), StringUtility.getOrDefault(c.get("name"), ""), StringUtility.getOrDefault(c.get("nameSpace"), "")); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(cmdId, + StringUtility.getOrDefaultEmpty(c.get("code")), + StringUtility.getOrDefaultEmpty(c.get("name")), + StringUtility.getOrDefaultEmpty(c.get("nameSpace"))); + GspMetadata commandMetadata = cmdManager.getWebCommands(metadataManagerParameter); metadata = (WebCommandsMetadata) commandMetadata.getContent(); - // 写入web 命令元数据 - this.getWebCommandsMetadataHashMap().put(commandMetadata.getHeader().getId(), WebCommandsMetadataAndExtra.init(metadata, commandMetadata.getHeader().getId(), commandMetadata.getHeader().getName(), commandMetadata.getHeader().getFileName(), commandMetadata.getRelativePath())); + // 写入缓存 避免多次对同一个元数据的请求 + this.getWebCommandsMetadataHashMap().put(commandMetadata.getHeader().getId(), + WebCommandsMetadataAndExtra.init(metadata, commandMetadata.getHeader().getId(), commandMetadata.getHeader().getName(), commandMetadata.getHeader().getFileName(), commandMetadata.getRelativePath())); analysisComponentMetadata(metadata, cmpList, null, componentMetadataManager, projectCmpList); @@ -155,9 +171,7 @@ public class CommandsAnalysis { } sbCommands.append("}"); - if (StringUtility.isNullOrEmpty(fileName)) { - fileName = parameter.getJson().getModule().getCode().toLowerCase(); - } + if (this.createCommandJsonFile) { cmdManager.saveMetadataFile(targetStoragePath, formMetadataName.toLowerCase() + ".command.json", sbCommands.toString()); } @@ -189,9 +203,9 @@ public class CommandsAnalysis { List> completableFutureList, Map formRelateMetadataInDesignResultDtoConcurrentHashMap ) { - CommandsMetadataManager cmdManager = new CommandsMetadataManager(this.executeEnvironment, this.isUpdradeTool, parameter.getFormMetadata().getRelativePath()); + CommandsMetadataManager cmdManager = new CommandsMetadataManager(this.executeEnvironment, parameter.getFormMetadata().getRelativePath(), this.isUpgradeTool); - ComponentMetadataManager componentMetadataManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpdradeTool, parameter.getFormMetadata().getRelativePath()); + ComponentMetadataManager componentMetadataManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpgradeTool, parameter.getFormMetadata().getRelativePath()); if (parameter.getJson().getModule() != null && parameter.getJson().getModule().getWebcmds() != null && parameter.getJson().getModule().getWebcmds().size() > 0) { // 使用并行流 @@ -202,7 +216,11 @@ public class CommandsAnalysis { Map webCommandsMetadataAndExtraMap = new ConcurrentHashMap<>(); String cmdId = c.get("id").toString(); - GspMetadata commandMetadata = cmdManager.getWebCommands(cmdId, StringUtility.getOrDefault(c.get("code"), ""), StringUtility.getOrDefault(c.get("name"), ""), StringUtility.getOrDefault(c.get("nameSpace"),"")); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(cmdId, + StringUtility.getOrDefaultEmpty(c.get("code")), + StringUtility.getOrDefaultEmpty(c.get("name")), + StringUtility.getOrDefaultEmpty(c.get("nameSpace"))); + GspMetadata commandMetadata = cmdManager.getWebCommands(metadataManagerParameter); WebCommandsMetadata metadata = (WebCommandsMetadata) commandMetadata.getContent(); // 写入web 命令元数据 webCommandsMetadataAndExtraMap.put(commandMetadata.getHeader().getId(), WebCommandsMetadataAndExtra.init(metadata, commandMetadata.getHeader().getId(), commandMetadata.getHeader().getName(), commandMetadata.getHeader().getFileName(), commandMetadata.getRelativePath())); @@ -244,8 +262,8 @@ public class CommandsAnalysis { private void analysisComponentMetadata(WebCommandsMetadata metadata, Map cmpList, List items, ComponentMetadataManager cmpManager, Map projectCmpList) { - if (items == null || items.size() == 0) { - if (metadata.getCommands() != null && metadata.getCommands().size() > 0) { + if (ListUtility.isEmpty(items)) { + if (ListUtility.isNotEmpty(metadata.getCommands())) { for (WebCommand webCommandItem : metadata.getCommands()) { try { analysisComponentCommandItemList(webCommandItem.getItems(), cmpList, cmpManager, projectCmpList); @@ -275,7 +293,7 @@ public class CommandsAnalysis { ComponentMetadataManager cmpManager, Map projectCmpList) throws Exception { if (commandItemList != null && commandItemList.size() > 0) { if (cmpManager == null) { - cmpManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpdradeTool); + cmpManager = new ComponentMetadataManager(this.executeEnvironment, this.isUpgradeTool, null); } WebComponentMetadata cmpMetadata = null; for (CommandItem item : commandItemList) { @@ -285,7 +303,11 @@ public class CommandsAnalysis { if (!projectCmpList.containsKey(((CmpMethodRefering) item).getComponentId())) { try { CmpMethodRefering cmpMethodReferingItem = (CmpMethodRefering) item; - cmpMetadata = cmpManager.getComponentMetadata(cmpMethodReferingItem.getComponentId(), cmpMethodReferingItem.getCode(), cmpMethodReferingItem.getName(), cmpMethodReferingItem.getComponentPath()); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(cmpMethodReferingItem.getComponentId(), + cmpMethodReferingItem.getCode(), + cmpMethodReferingItem.getName(), + cmpMethodReferingItem.getComponentPath()); + cmpMetadata = cmpManager.getComponentMetadata(metadataManagerParameter); if (cmpMetadata == null) { throw new Exception("标识为'" + ((CmpMethodRefering) item).getComponentId() + "'的服务构件为null。"); } @@ -404,7 +426,7 @@ public class CommandsAnalysis { throw new WebCustomException("获取ts文件名出错,对应的web构件id不能为空。"); } - CommandsMetadataManager manager = new CommandsMetadataManager(this.executeEnvironment, this.isUpdradeTool); + CommandsMetadataManager manager = new CommandsMetadataManager(this.executeEnvironment, null, this.isUpgradeTool); GspMetadata metadata = manager.getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); getterMetadataInfo.setId(cmpId); diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/EapiAnalysis.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/EapiAnalysis.java index a5987300a6e5e62ab980f3527f7e968f1e9208ed..3c2d52345c92056c04974c2de7945b08ff051ad1 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/EapiAnalysis.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/EapiAnalysis.java @@ -18,13 +18,18 @@ package com.inspur.edp.web.formmetadata.metadataanalysis; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.inspur.edp.lcm.metadata.api.IMetadataContent; +import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.formmetadata.metadatamanager.EapiMetadataManager; +import com.inspur.edp.web.formmetadata.metadatamanager.MetadataManagerParameter; +import lombok.Getter; import java.util.HashMap; import java.util.List; +import java.util.Optional; +import java.util.function.Function; /** * Eapi解析 @@ -32,27 +37,15 @@ import java.util.List; * @author noah */ -public class EapiAnalysis { +public class EapiAnalysis extends AbstractMetadataAnalysis { - private ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Design; - private boolean isUpdradeTool = false; - - public EapiAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; + public EapiAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + super(executeEnvironment, isUpgradeTool); } - - /** - * 解析表单代码引用的eapi - * - * @param json 表单代码 - * @param targetStoragePath 解析后eapi存储路径 - * @param projectPath 工程路径 - * @param webDevPath webdev目录所在路径 - */ - public void resolveEapi(FormDOM json, String formMetadataName, String targetStoragePath, String projectPath, - String webDevPath, String nameSpace) { + public void resolveEapi(FormDOM json, String formMetadataName, String targetStoragePath, + String nameSpace, String relativePath, + Function> getEapiMetadataSupplier) { if (json == null || json.getModule() == null || json.getModule().getCode() == null || StringUtility.isNullOrEmpty(targetStoragePath) || json.getModule().getSchemas() == null || json.getModule().getSchemas().size() == 0) { @@ -63,7 +56,7 @@ public class EapiAnalysis { int index = 0; // VO-EAPI(vo和eapi是一对一的关系) List> schemas = json.getModule().getSchemas(); - EapiMetadataManager eapiMetadataManager = new EapiMetadataManager(this.executeEnvironment, this.isUpdradeTool); + EapiMetadataManager eapiMetadataManager = new EapiMetadataManager(this.executeEnvironment, this.isUpgradeTool, relativePath); for (HashMap item : schemas) { if (index > 0) { eapis.append(","); @@ -72,18 +65,52 @@ public class EapiAnalysis { String strEapiID = item.containsKey("eapiId") ? item.get("eapiId").toString() : ""; // 如果获取到EapiID 抛出对应的异常,主要目的是因为eapi的结构调整 if (!StringUtility.isNullOrEmpty(strEapiID)) { - IMetadataContent eapiMetadataContent = eapiMetadataManager.getEapiMetadataContent(strEapiID, - StringUtility.getOrDefault(item.get("eapiCode"), ""), - StringUtility.getOrDefault(item.get("eapiName"), ""), + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(strEapiID, + StringUtility.getOrDefaultEmpty(item.get("eapiCode")), + StringUtility.getOrDefaultEmpty(item.get("eapiName")), StringUtility.getOrDefault(item.get("eapiNameSpace"), nameSpace)); - String eapiJson = eapiMetadataManager.serialize(eapiMetadataContent, PropertyNamingStrategy.UPPER_CAMEL_CASE); - eapis.append(eapiJson); + ResolveEapiParameter resolveEapiParameter = ResolveEapiParameter.init(metadataManagerParameter, eapiMetadataManager); + Optional optionalEapiMetadata = getEapiMetadataSupplier.apply(resolveEapiParameter); + if (optionalEapiMetadata.isPresent()) { + IMetadataContent eapiMetadataContent = optionalEapiMetadata.get().getContent(); + String eapiJson = eapiMetadataManager.serialize(eapiMetadataContent, PropertyNamingStrategy.UPPER_CAMEL_CASE); + eapis.append(eapiJson); - index += 1; + index += 1; + } } } eapis.append("]"); eapiMetadataManager.saveMetadataFile(targetStoragePath, formMetadataName.toLowerCase() + ".eapi.json", eapis.toString()); } + + /** + * 解析表单代码引用的eapi + * + * @param json 表单代码 + * @param targetStoragePath 解析后eapi存储路径 + */ + public void resolveEapi(FormDOM json, String formMetadataName, String targetStoragePath, + String nameSpace, String relativePath) { + this.resolveEapi(json, formMetadataName, targetStoragePath, nameSpace, relativePath, + (resolveEapiParameter) -> + resolveEapiParameter.getEapiMetadataManager().getEapiMetadata(resolveEapiParameter.getMetadataManagerParameter())); + } + + @Getter + public static class ResolveEapiParameter { + private MetadataManagerParameter metadataManagerParameter; + private EapiMetadataManager eapiMetadataManager; + + private ResolveEapiParameter() { + } + + public static ResolveEapiParameter init(MetadataManagerParameter metadataManagerParameter, EapiMetadataManager eapiMetadataManager) { + ResolveEapiParameter resolveEapiParameter = new ResolveEapiParameter(); + resolveEapiParameter.eapiMetadataManager = eapiMetadataManager; + resolveEapiParameter.metadataManagerParameter = metadataManagerParameter; + return resolveEapiParameter; + } + } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/FormAnalysis.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/FormAnalysis.java index 31300eebb26335e888fe08caddb76e1fa424215f..a2423444e0ca51b9b1390f0a17578d41dcbed2f2 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/FormAnalysis.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/FormAnalysis.java @@ -31,17 +31,10 @@ import java.util.HashMap; * * @author noah */ -public class FormAnalysis { +public class FormAnalysis extends AbstractMetadataAnalysis { - /** - * 设定执行环境 - */ - private ExecuteEnvironment executeEnvironment = ExecuteEnvironment.Design; - private boolean isUpdradeTool = false; - - public FormAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - this.executeEnvironment = executeEnvironment; - this.isUpdradeTool = isUpdradeTool; + public FormAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + super(executeEnvironment, isUpgradeTool); } /** @@ -49,7 +42,7 @@ public class FormAnalysis { */ public ResolveFormResult resolveForm(String formMetadataFileName, String formMetadataFilePath, String destStoragePath, String projectPath) { // Get Visual Dom - FormMetadataManager formMetadataManager = new FormMetadataManager(this.executeEnvironment, this.isUpdradeTool); + FormMetadataManager formMetadataManager = new FormMetadataManager(this.executeEnvironment, null, this.isUpgradeTool); String formDom = formMetadataManager.getVisualDom(formMetadataFileName, formMetadataFilePath); // 反序列化表单元数据 @@ -91,7 +84,7 @@ public class FormAnalysis { /// /// public AnalysisExternalComponentResult analysisExternalComponent(String frmJsonSavePath, - String parentModuleCode, + String parentModuleCode, String relativePath, HashMap externalComponent, String webDevPath) { FormDOM json = null; Object objUri = null; @@ -101,7 +94,7 @@ public class FormAnalysis { Object objExternalComponentContainerId = null; String externalComponentContainerId = ""; String externalComponentPath = ""; - FormMetadataManager formMetadataManager = new FormMetadataManager(this.executeEnvironment, this.isUpdradeTool); + FormMetadataManager formMetadataManager = new FormMetadataManager(this.executeEnvironment, relativePath, this.isUpgradeTool); //TODO: 验证TryGetValue在java中语义实现 objUri = externalComponent.get("uri"); externalComponentUri = objUri != null ? objUri.toString() : ""; diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/StateMachineAnalysis.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/StateMachineAnalysis.java index e99b452728e1d83e69b41e0421c5c6331be56968..e11a31bc343074b23f2c6a214544582d414823a3 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/StateMachineAnalysis.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/StateMachineAnalysis.java @@ -20,23 +20,29 @@ import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; +import com.inspur.edp.web.formmetadata.metadatamanager.MetadataManagerParameter; import com.inspur.edp.web.formmetadata.metadatamanager.StateMachineMetadataManager; +import lombok.Getter; import java.util.HashMap; +import java.util.function.Function; /** * 状态机的解析 */ -public class StateMachineAnalysis { - /** - * 解析状态机元数据 - */ - public static void resolveStateMachine(FormDOM json, String metaDataFileName, String targetStoragePath, String webDevPath, - String projectPath, ExecuteEnvironment executeEnvironment, - boolean isUpdradeTool) { +public class StateMachineAnalysis extends AbstractMetadataAnalysis { + + public StateMachineAnalysis(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool) { + super(executeEnvironment, isUpgradeTool); + } + + public void resolveStateMachine(FormDOM json, String metaDataFileName, String targetStoragePath, + String relativePath, + Function getMetadataSupplier) { // Get StateMachine Metadata, and Save StateMachine - if (json.getModule() != null && json.getModule().getStateMachines() != null && json.getModule().getStateMachines().size() > 0) { - StateMachineMetadataManager smManager = new StateMachineMetadataManager(executeEnvironment, isUpdradeTool); + if (json.getModule() != null && json.getModule().getStateMachines() != null && + json.getModule().getStateMachines().size() > 0) { + StateMachineMetadataManager smManager = new StateMachineMetadataManager(this.executeEnvironment, this.isUpgradeTool, relativePath); StringBuilder stateMachines = new StringBuilder(); stateMachines.append("{"); int index = 0; @@ -45,7 +51,12 @@ public class StateMachineAnalysis { stateMachines.append(","); } String uri = o.get("uri").toString(); - GspMetadata obj = smManager.getStateMachine(uri, StringUtility.getOrDefault(o.get("code"), ""), StringUtility.getOrDefault(o.get("name"), ""), StringUtility.getOrDefault(o.get("nameSpace"), "")); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(uri, + StringUtility.getOrDefaultEmpty(o.get("code")), + StringUtility.getOrDefaultEmpty(o.get("name")), + StringUtility.getOrDefaultEmpty(o.get("nameSpace"))); + ResolveStateMachineParameter resolveStateMachineParameter = ResolveStateMachineParameter.init(metadataManagerParameter, smManager); + GspMetadata obj = getMetadataSupplier.apply(resolveStateMachineParameter); String sm_json = smManager.serialize(obj.getContent()); String idStr = o.get("id").toString(); stateMachines.append("\"").append(idStr).append("\":"); @@ -58,4 +69,30 @@ public class StateMachineAnalysis { smManager.saveMetadataFile(targetStoragePath, String.format("%1$s.sm.json", metaDataFileName.toLowerCase()), stateMachines.toString()); } } + + /** + * 解析状态机元数据 + * 使用默认的StateMachineManager进行元数据读取 + */ + public void resolveStateMachine(FormDOM json, String metaDataFileName, String targetStoragePath, + String relativePath) { + resolveStateMachine(json, metaDataFileName, targetStoragePath, relativePath, + (resolveStateMachineParameter) -> resolveStateMachineParameter.smManager.getStateMachine(resolveStateMachineParameter.metadataManagerParameter)); + } + + @Getter + public static class ResolveStateMachineParameter { + private MetadataManagerParameter metadataManagerParameter; + private StateMachineMetadataManager smManager; + + private ResolveStateMachineParameter() { + } + + public static ResolveStateMachineParameter init(MetadataManagerParameter metadataManagerParameter, StateMachineMetadataManager smManager) { + ResolveStateMachineParameter resolveStateMachineParameter = new ResolveStateMachineParameter(); + resolveStateMachineParameter.metadataManagerParameter = metadataManagerParameter; + resolveStateMachineParameter.smManager = smManager; + return resolveStateMachineParameter; + } + } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/app/AppConfig.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/app/AppConfig.java deleted file mode 100644 index 41426cc5780aad9d3c9ead39392abdd8e27c29fd..0000000000000000000000000000000000000000 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadataanalysis/app/AppConfig.java +++ /dev/null @@ -1,56 +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.formmetadata.metadataanalysis.app; - -import java.util.ArrayList; -import java.util.HashMap; - -/** - * appconfig 实体信息 - * @author noah - */ -public class AppConfig { - private HashMap project; - - public final HashMap getproject() { - return project; - } - - public final void setproject(HashMap value) { - project = value; - } - - private ArrayList> pages; - - public final ArrayList> getpages() { - return pages; - } - - public final void setpages(ArrayList> value) { - pages = value; - } - - private String entry; - - public final String getentry() { - return entry; - } - - public final void setentry(String value) { - entry = value; - } -} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/BaseMetaDataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/BaseMetaDataManager.java index f13da568310ed2e2f6035a45f82d6151c75d42dd..6777f51802299e773fa0a40afce6a9af77b7e889 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/BaseMetaDataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/BaseMetaDataManager.java @@ -26,6 +26,7 @@ import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.serialize.SerializeUtility; +import com.inspur.edp.web.common.utility.StringUtility; import java.util.function.Supplier; @@ -36,25 +37,26 @@ import java.util.function.Supplier; */ public abstract class BaseMetaDataManager { + private boolean isUpgradeTool = false; + + private String relativePath = ""; + + /** + * 默认的元数据找不到异常信息提示格式化参数 + */ + private static final String defaultMetadataNotFoundFormatMessage = "根据元数据id获取元数据信息为空,对应元数据id:%s,元数据类型为:%s"; + /** * 设定必须获取当前的运行环境 * * @param executeEnvironment */ - public BaseMetaDataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { + public BaseMetaDataManager(ExecuteEnvironment executeEnvironment, String relativePath, boolean isUpgradeTool) { this.setExecuteEnvironment(executeEnvironment); - this.isUpdradeTool = isUpdradeTool; + this.isUpgradeTool = isUpgradeTool; + this.relativePath = relativePath; } - private boolean isUpdradeTool = false; - - private String relativePath = ""; - - /** - * 默认的元数据找不到异常信息提示格式化参数 - */ - protected static final String defaultMetadataNotFoundFormatMessage = "根据元数据id获取元数据信息为空,对应元数据id:%s,元数据类型为:%s"; - /** * 获取默认的元数据找不到异常信息 * @@ -71,7 +73,7 @@ public abstract class BaseMetaDataManager { return this.relativePath; } - public void setRelativePath(String relativePath) { + protected void setRelativePath(String relativePath) { this.relativePath = relativePath; } @@ -100,20 +102,8 @@ public abstract class BaseMetaDataManager { throw new WebCustomException("元数据获取,构造目标元数据信息supplierAction不能为空"); } - GspMetadata metadata = MetadataUtility.getInstance().getMetadataWithEnvironment(targetMetadataSupplierAction, sourceMetadataSupplierAction, customTargetMetadataNotFoundMessage, this.executeEnvironment, isUpdradeTool); - - if (metadata != null) { - //relativePath = metadata.getRelativePath(); - } - return metadata; - } - - public GspMetadata getMetadata(String metaDataFileName, String metaDataFilePath) { - GspMetadata metadata = MetadataUtility.getInstance().getMetadataWithDesign(metaDataFileName, metaDataFilePath); - if (metadata != null) { - //relativePath = metadata.getRelativePath(); - } - return metadata; + return MetadataUtility.getInstance().getMetadataWithEnvironment(targetMetadataSupplierAction, sourceMetadataSupplierAction, + customTargetMetadataNotFoundMessage, this.executeEnvironment, isUpgradeTool); } public String serialize(IMetadataContent obj) { diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandExtendProperty.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandExtendProperty.java deleted file mode 100644 index 49d89c091f6408e70fb1e7462624667e36abc3ba..0000000000000000000000000000000000000000 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandExtendProperty.java +++ /dev/null @@ -1,33 +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.formmetadata.metadatamanager; - -/** - * 命令扩展 - * @author noah - */ -public class CommandExtendProperty { - private String sourceCode; - - public final String getSourceCode() { - return sourceCode; - } - - public final void setsourceCode(String value) { - sourceCode = value; - } -} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandServiceManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandServiceManager.java index 3c4dd2be21c9c4eac25bb2a22d34c4a99f200d5e..637546e560de0b15862ef43ec817071e1a379e8d 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandServiceManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandServiceManager.java @@ -26,7 +26,6 @@ import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.tsfile.api.service.TsFileService; import io.iec.edp.caf.commons.utils.SpringBeanUtils; -import lombok.extern.slf4j.Slf4j; import java.util.HashMap; @@ -35,7 +34,6 @@ import java.util.HashMap; * * @author noah */ -@Slf4j public class CommandServiceManager { private CommandServiceManager() { } @@ -92,4 +90,21 @@ public class CommandServiceManager { } return ""; } + + /** + * 命令扩展 + * + * @author noah + */ + private static class CommandExtendProperty { + private String sourceCode; + + public final String getSourceCode() { + return sourceCode; + } + + public final void setsourceCode(String value) { + sourceCode = value; + } + } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandsMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandsMetadataManager.java index b9cccc10a5dbe86e95babb29b133c18fdd8c2cf7..23dada6a93b296ca075dff44a08e16aa3c6d5bc4 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandsMetadataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/CommandsMetadataManager.java @@ -17,7 +17,7 @@ package com.inspur.edp.web.formmetadata.metadatamanager; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; -import com.inspur.edp.web.command.component.metadata.WebCommandsMetadata; +import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; @@ -28,28 +28,24 @@ import com.inspur.edp.web.common.metadata.MetadataTypeEnum; * @author noah */ public class CommandsMetadataManager extends BaseMetaDataManager { - public CommandsMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); - } - public CommandsMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, String relativePath) { - super(executeEnvironment, isUpdradeTool); - this.setRelativePath(relativePath); + public CommandsMetadataManager(ExecuteEnvironment executeEnvironment, String relativePath, boolean isUpdradeTool) { + super(executeEnvironment, relativePath, isUpdradeTool); } - public GspMetadata getWebCommands(String id, String code, String name, String nameSpace) { + public GspMetadata getWebCommands(MetadataManagerParameter metadataManagerParameter) { GspMetadata webCommandMetadata = getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(id); + getterMetadataInfo.setId(metadataManagerParameter.getId()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.Command); - getterMetadataInfo.setCode(code); + getterMetadataInfo.setCode(metadataManagerParameter.getExtendParameter().getCode()); getterMetadataInfo.setPath(this.getRelativePath()); - getterMetadataInfo.setNameSpace(nameSpace); - getterMetadataInfo.setName(name); + getterMetadataInfo.setNameSpace(metadataManagerParameter.getExtendParameter().getNameSpace()); + getterMetadataInfo.setName(metadataManagerParameter.getExtendParameter().getName()); return getterMetadataInfo; - }, null, this.getDefaultMetadataNotFoundFormatMessage(id, MetadataTypeEnum.Command)); + }, null, this.getDefaultMetadataNotFoundFormatMessage(metadataManagerParameter.getId(), MetadataTypeEnum.Command)); if (webCommandMetadata == null) { - throw new RuntimeException("load webCommand metadata is null,the commandId is " + id); + throw new WebCustomException("load webCommand metadata is null,the commandId is " + metadataManagerParameter.getId()); } return webCommandMetadata; } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/ComponentMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/ComponentMetadataManager.java index 6d892e67b1243b7bb90b7a7f2875230016785406..a5313f6b8105c6c70aeeda6575b7d82d7559675c 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/ComponentMetadataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/ComponentMetadataManager.java @@ -29,28 +29,23 @@ import com.inspur.edp.web.common.metadata.MetadataTypeEnum; */ public class ComponentMetadataManager extends BaseMetaDataManager { - public ComponentMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); - } - public ComponentMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, String relativePath) { - super(executeEnvironment, isUpdradeTool); - this.setRelativePath(relativePath); + super(executeEnvironment, relativePath, isUpdradeTool); } - public WebComponentMetadata getComponentMetadata(String id, String code, String name, String nameSpace) { + public WebComponentMetadata getComponentMetadata(MetadataManagerParameter metadataManagerParameter) { GspMetadata webComponentMetadata = getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(id); - getterMetadataInfo.setCode(code); - getterMetadataInfo.setName(name); + getterMetadataInfo.setId(metadataManagerParameter.getId()); + getterMetadataInfo.setCode(metadataManagerParameter.getExtendParameter().getCode()); + getterMetadataInfo.setName(metadataManagerParameter.getExtendParameter().getName()); getterMetadataInfo.setPath(this.getRelativePath()); - getterMetadataInfo.setNameSpace(nameSpace); + getterMetadataInfo.setNameSpace(metadataManagerParameter.getExtendParameter().getNameSpace()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.Component); return getterMetadataInfo; - }, null, this.getDefaultMetadataNotFoundFormatMessage(id, MetadataTypeEnum.Component)); + }, null, this.getDefaultMetadataNotFoundFormatMessage(metadataManagerParameter.getId(), MetadataTypeEnum.Component)); if (webComponentMetadata == null) { - throw new RuntimeException("load webComponent metadata is null,the metaDataId is " + id); + throw new RuntimeException("load webComponent metadata is null,the metaDataId is " + metadataManagerParameter.getId()); } return (WebComponentMetadata) webComponentMetadata.getContent(); } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/EapiMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/EapiMetadataManager.java index ca798bcea213f75023b209f13084bc7924c73ba4..4f08904408cd11860d447d057c036b7623244c1b 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/EapiMetadataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/EapiMetadataManager.java @@ -16,25 +16,22 @@ package com.inspur.edp.web.formmetadata.metadatamanager; -import com.inspur.edp.lcm.metadata.api.IMetadataContent; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; +import java.util.Optional; + /** * Eapi 元数据管理器 * * @author noah */ public class EapiMetadataManager extends BaseMetaDataManager { - public EapiMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); - } public EapiMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, String relativePath) { - super(executeEnvironment, isUpdradeTool); - this.setRelativePath(relativePath); + super(executeEnvironment, relativePath, isUpdradeTool); } /** @@ -42,19 +39,19 @@ public class EapiMetadataManager extends BaseMetaDataManager { * * @return */ - public IMetadataContent getEapiMetadataContent(String eapiMetadataId, String eapiMetadataCode, String eapiMetadataName, String eapiMetadataNameSpace) { + public Optional getEapiMetadata(MetadataManagerParameter metadataManagerParameter) { GspMetadata eapiMetadata = getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(eapiMetadataId); + getterMetadataInfo.setId(metadataManagerParameter.getId()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.Eapi); - getterMetadataInfo.setName(eapiMetadataName); - getterMetadataInfo.setCode(eapiMetadataCode); - getterMetadataInfo.setNameSpace(eapiMetadataNameSpace); + getterMetadataInfo.setName(metadataManagerParameter.getExtendParameter().getName()); + getterMetadataInfo.setCode(metadataManagerParameter.getExtendParameter().getCode()); + getterMetadataInfo.setNameSpace(metadataManagerParameter.getExtendParameter().getNameSpace()); return getterMetadataInfo; - }, null, this.getDefaultMetadataNotFoundFormatMessage(eapiMetadataId, MetadataTypeEnum.Eapi)); + }, null, this.getDefaultMetadataNotFoundFormatMessage(metadataManagerParameter.getId(), MetadataTypeEnum.Eapi)); if (eapiMetadata == null) { - throw new RuntimeException("load eapi metadata is null,the metaDataId is " + eapiMetadataId); + throw new RuntimeException("load eapi metadata is null,the metaDataId is " + metadataManagerParameter.getId()); } - return eapiMetadata.getContent(); + return Optional.ofNullable(eapiMetadata); } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/FormMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/FormMetadataManager.java index 9027ef0a36fcaa1ebd10d391758db3d5ddf3963d..b06d35ba70e28f4912e8d2ec608001e1566f99a0 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/FormMetadataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/FormMetadataManager.java @@ -20,6 +20,7 @@ import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; +import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; /** @@ -28,15 +29,16 @@ import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; * @author guozhiqi */ public class FormMetadataManager extends BaseMetaDataManager { - public FormMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); + public FormMetadataManager(ExecuteEnvironment executeEnvironment, String relativePath, boolean isUpdradeTool) { + super(executeEnvironment, relativePath, isUpdradeTool); } /** * 获取可视化的DOM */ public String getVisualDom(String metaDataFileName, String metaDataFilePath) { - GspMetadata metadata = getMetadata(metaDataFileName, metaDataFilePath); + GspMetadata metadata = MetadataUtility.getInstance().getMetadataWithDesign(metaDataFileName, metaDataFilePath); + this.setRelativePath(metadata.getRelativePath()); return ((FormMetadataContent) metadata.getContent()).getContents().toString(); } @@ -44,21 +46,21 @@ public class FormMetadataManager extends BaseMetaDataManager { /** * 根据元数据id获取表单元数据 * - * @param metaDataId + * @param metadataManagerParameter * @return */ - private GspMetadata getFormMetaData(String metaDataId, String code, String name, String nameSpace) { + private GspMetadata getFormMetaData(MetadataManagerParameter metadataManagerParameter) { GspMetadata metadata = getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(metaDataId); - getterMetadataInfo.setCode(code); - getterMetadataInfo.setName(name); - getterMetadataInfo.setNameSpace(nameSpace); + getterMetadataInfo.setId(metadataManagerParameter.getId()); + getterMetadataInfo.setCode(metadataManagerParameter.getExtendParameter().getCode()); + getterMetadataInfo.setName(metadataManagerParameter.getExtendParameter().getName()); + getterMetadataInfo.setNameSpace(metadataManagerParameter.getExtendParameter().getNameSpace()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.Frm); return getterMetadataInfo; - }, null, this.getDefaultMetadataNotFoundFormatMessage(metaDataId, MetadataTypeEnum.Frm)); + }, null, this.getDefaultMetadataNotFoundFormatMessage(metadataManagerParameter.getId(), MetadataTypeEnum.Frm)); if (metadata == null) { - throw new RuntimeException("load form metadata is null,the metaDataId is " + metaDataId); + throw new RuntimeException("load form metadata is null,the metaDataId is " + metadataManagerParameter.getId()); } return metadata; } @@ -67,7 +69,9 @@ public class FormMetadataManager extends BaseMetaDataManager { * 根据元数据ID获取元数据信息 */ public String getVisualDom(String metadataID, String code, String name, String nameSpace) { - GspMetadata metadata = this.getFormMetaData(metadataID, code, name, nameSpace); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(metadataID, code, name, nameSpace); + GspMetadata metadata = this.getFormMetaData(metadataManagerParameter); + this.setRelativePath(metadata.getRelativePath()); return ((FormMetadataContent) metadata.getContent()).getContents().toString(); } } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/MetadataManagerParameter.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/MetadataManagerParameter.java new file mode 100644 index 0000000000000000000000000000000000000000..e17bd6e621722c73d11fb83262b200af522b0e5d --- /dev/null +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/MetadataManagerParameter.java @@ -0,0 +1,84 @@ +package com.inspur.edp.web.formmetadata.metadatamanager; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 通过id获取元数据参数 + * 增加code、name、namespace的目的是为了更加友好的提示元数据找不到时的异常提示信息 + * + * @author noah + * 2023/7/8 19:06 + */ +public class MetadataManagerParameter implements Serializable { + private static final long serialVersionUID = -8388L; + + private MetadataManagerParameter() { + } + + /** + * 元数据id + */ + String id; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + private ExtendParameter extendParameter; + + public ExtendParameter getExtendParameter() { + if (this.extendParameter == null) { + this.extendParameter = new ExtendParameter(); + } + return extendParameter; + } + + public void setExtendParameter(ExtendParameter extendParameter) { + this.extendParameter = extendParameter; + } + + public static MetadataManagerParameter init(String id, String code, String name, String nameSpace) { + MetadataManagerParameter metadataManagerParameter = new MetadataManagerParameter(); + metadataManagerParameter.setId(id); + ExtendParameter extendParameter = ExtendParameter.init(code, name, nameSpace); + metadataManagerParameter.setExtendParameter(extendParameter); + return metadataManagerParameter; + } + + /** + * 扩展参数信息 + */ + @Data + public static class ExtendParameter { + /** + * 元数据code + */ + String code; + /** + * 元数据name + */ + String name; + /** + * 元数据nameSpace + */ + String nameSpace; + + private ExtendParameter() { + } + + public static ExtendParameter init(String code, String name, String nameSpace) { + ExtendParameter extendParameter = new ExtendParameter(); + extendParameter.setCode(code); + extendParameter.setName(name); + extendParameter.setNameSpace(nameSpace); + return extendParameter; + } + } + +} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/StateMachineMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/StateMachineMetadataManager.java index ad0702253d4107dfd2342171cdfbc49a6cc5c5c0..aeaa413ca3388ae5edae933ef9879c1329c8763a 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/StateMachineMetadataManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/StateMachineMetadataManager.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.formmetadata.metadatamanager; -import com.inspur.edp.lcm.metadata.api.IMetadataContent; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; @@ -24,31 +23,28 @@ import com.inspur.edp.web.common.metadata.MetadataTypeEnum; /** * 状态机元数据读取 + * * @author guozhiqi */ public class StateMachineMetadataManager extends BaseMetaDataManager { - public StateMachineMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); - } - public StateMachineMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool, String relativePath) { - super(executeEnvironment, isUpdradeTool); - this.setRelativePath(relativePath); + public StateMachineMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpgradeTool, String relativePath) { + super(executeEnvironment, relativePath, isUpgradeTool); } - public GspMetadata getStateMachine(String id, String code, String name, String nameSpace) { + public GspMetadata getStateMachine(MetadataManagerParameter metadataManagerParameter) { GspMetadata stateMachineMetaData = getMetadata(() -> { MetadataGetterParameter.GetterMetadataInfo getterMetadataInfo = new MetadataGetterParameter.GetterMetadataInfo(); - getterMetadataInfo.setId(id); - getterMetadataInfo.setCode(code); - getterMetadataInfo.setName(name); - getterMetadataInfo.setNameSpace(nameSpace); + getterMetadataInfo.setId(metadataManagerParameter.getId()); + getterMetadataInfo.setCode(metadataManagerParameter.getExtendParameter().getCode()); + getterMetadataInfo.setName(metadataManagerParameter.getExtendParameter().getName()); + getterMetadataInfo.setNameSpace(metadataManagerParameter.getExtendParameter().getNameSpace()); getterMetadataInfo.setPath(this.getRelativePath()); getterMetadataInfo.setMetadataType(MetadataTypeEnum.StateMachine); return getterMetadataInfo; - }, null, this.getDefaultMetadataNotFoundFormatMessage(id, MetadataTypeEnum.StateMachine)); + }, null, this.getDefaultMetadataNotFoundFormatMessage(metadataManagerParameter.getId(), MetadataTypeEnum.StateMachine)); if (stateMachineMetaData == null) { - throw new RuntimeException("load statemachine metadata is null,the metaDataId is " + id); + throw new RuntimeException("load statemachine metadata is null,the metaDataId is " + metadataManagerParameter.getId()); } return stateMachineMetaData; } diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/app/AppMetadataManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/app/AppMetadataManager.java deleted file mode 100644 index 9ad1c583fe213326ba5aedddc673b7888341a619..0000000000000000000000000000000000000000 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/metadatamanager/app/AppMetadataManager.java +++ /dev/null @@ -1,37 +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.formmetadata.metadatamanager.app; - -import com.inspur.edp.web.common.environment.ExecuteEnvironment; -import com.inspur.edp.web.formmetadata.metadatamanager.BaseMetaDataManager; - -/** - * appmetadataManager - * @author noah - */ -public class AppMetadataManager extends BaseMetaDataManager { - - /** - * 设定必须获取当前的运行环境 - * - * @param executeEnvironment - * @param isUpdradeTool - */ - public AppMetadataManager(ExecuteEnvironment executeEnvironment, boolean isUpdradeTool) { - super(executeEnvironment, isUpdradeTool); - } -} diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/MetadataHeaderCloneManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/MetadataHeaderCloneManager.java index d6c2a957cd8de024a9ffbff990b8b194ca1415c2..acca29b518fa47b0d3febcef9806cf22816c8222 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/MetadataHeaderCloneManager.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/MetadataHeaderCloneManager.java @@ -22,8 +22,6 @@ import com.inspur.edp.lcm.metadata.api.entity.MetadataHeader; import com.inspur.edp.web.common.utility.RandomUtility; import com.inspur.edp.web.common.utility.StringUtility; -import java.util.UUID; - /** * 元数据header deepClone * diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/adjust/FormMetadataCloneAdjustStrategy.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/adjust/FormMetadataCloneAdjustStrategy.java index 2f98c4b72be5d410b993268d1da0bb97bfbaebe5..5b8285f4e70f74229bca805134edd63e13a9c704 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/adjust/FormMetadataCloneAdjustStrategy.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/adjust/FormMetadataCloneAdjustStrategy.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.formmetadata.replication.adjust; -import com.inspur.edp.formserver.viewmodel.GspViewModel; import com.inspur.edp.lcm.metadata.api.IMetadataContent; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.utility.CommonUtility; diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/resolver/ResolveFormMetadataList.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/resolver/ResolveFormMetadataList.java index bc38c40f6dd4c88b72fbfa0f6f3469fa6cd07be9..a4ca9bf1622b7a4b50a20bd34c49c2d8c0554cff 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/resolver/ResolveFormMetadataList.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/resolver/ResolveFormMetadataList.java @@ -23,11 +23,7 @@ import java.util.ArrayList; import java.util.List; /** - * @Title: ResolveFormMetadataList - * @Description: com.inspur.edp.web.frontendproject.resolver - * @Author: Noah - * @Version: V1.0 - * @Create: 2022/5/14 16:34 + * 待生成json的元数据列表信息 */ public class ResolveFormMetadataList { diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetataService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetadataService.java similarity index 34% rename from web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetataService.java rename to web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetadataService.java index 0354049e6436a7f5df76ff41d2601ac150e0d560..2eb868da8ebfc9b3c3397f9c880324b70101e4e9 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetataService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormMetadataService.java @@ -34,7 +34,9 @@ import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.serialize.SerializeUtility; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.common.utility.StringUtility; +import com.inspur.edp.web.formmetadata.formresource.FormResourceManager; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContentService; @@ -45,6 +47,7 @@ import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.i18n.framework.api.language.EcpLanguage; import io.iec.edp.caf.i18n.framework.api.language.ILanguageService; +import javax.annotation.Resource; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; @@ -54,25 +57,35 @@ import java.util.Objects; import java.util.stream.Collectors; /** + * 需要通过spring 方式使用 + * * @author guozhiqi */ -public class FormMetataService { - public static void synchronizeLanuagePackage(String formMetadataFileName, String formMetadataPath) { - // (1) 获取表单元数据 - GspMetadata formMetadata = MetadataUtility.getInstance().getMetadataWithDesign(formMetadataFileName, formMetadataPath); - // (2) 查找到关联的资源元数据 - GspMetadata currentResourceMetadata = getRefResourceMetadata(formMetadata.getHeader().getId(), formMetadataPath); +public class FormMetadataService { + + + @Resource + private FormResourceManager formResourceManager; + + @Resource + private ILanguageService languageService; - // (3) 同步资源元数据上的语言包到表单元数据 - synchronizeLanuagePackage(formMetadata, currentResourceMetadata); + /** + * 获取对应的bean实例 + * + * @return + */ + public static FormMetadataService getBeanInstance() { + return SpringBeanUtils.getBean(FormMetadataService.class); } + /** * 生成表单关联的中文资源元数据 */ - public static void reSaveFormIfResourceNotExists(GspMetadata formMetadata, String baseFormPath) { + public void reSaveFormIfResourceNotExists(GspMetadata formMetadata, String baseFormPath) { List resourceList = getFormResourceWithMetaData(formMetadata, I18nResourceConstant.ZH_CHS, baseFormPath); - if (resourceList == null || resourceList.isEmpty()) { + if (ListUtility.isEmpty(resourceList)) { // 调用保存表单元数据接口,间接生成资源元数据 MetadataService metadataService = SpringBeanUtils.getBean(MetadataService.class); metadataService.saveMetadata(formMetadata, Paths.get(formMetadata.getRelativePath()).resolve(formMetadata.getHeader().getFileName()).toString()); @@ -86,206 +99,26 @@ public class FormMetataService { * @param language 语言列表 * @param baseFormPath 传递的基础表单的路径 针对组合表单,传递的也是基础表单的路径 */ - public static List getFormResourceWithMetaData(GspMetadata metadata, String language, String baseFormPath) { - II18nResourceDTManager resourceDtManager = SpringBeanUtils.getBean(II18nResourceDTManager.class); - // 当前语言未生效 - try { - List resourceList = resourceDtManager.getI18nResource(metadata, language, baseFormPath); - // 按语言进行过滤 - if (resourceList != null && resourceList.size() > 0) { - resourceList = resourceList - .stream() - .filter((t) -> language.equals(t.getLanguage())) - .collect(Collectors.toList()); - } - return resourceList; - } catch (MetadataNotFoundException ex) { - WebLogger.Instance.warn(ex.getMessage() + ex.getStackTrace()); - } catch (Exception ex) { - // 排除掉找不到对应的资源文件的异常 - String fileNotFoundException = "java.io.FileNotFoundException"; - if (ex.getMessage() != null && ex.getMessage().contains(fileNotFoundException)) { - WebLogger.Instance.warn(ex.getMessage()); - } else { - WebLogger.Instance.error(ex); - throw ex; - } - } - return null; - } - - /** - * 同步资源元数据的语言包到表单元数据 - */ - private static void synchronizeLanuagePackage(GspMetadata targetFormMetadata, GspMetadata sourceResourceMetadata) { - // (1) 从资源元数据中获取语言 - String currentLanguage = "en"; - // (2) 同步到表单元数据 - ResourceMetadata resourceMetadataContent = (ResourceMetadata) sourceResourceMetadata.getContent(); - ResourceItemCollection resourceItemCollection = resourceMetadataContent.getStringResources(); - - FormMetadataContent formMetadataContent = (FormMetadataContent) targetFormMetadata.getContent(); - FormDOM formContent = FormMetadataContentService.getInstance().getFormContent(formMetadataContent); - HashMap> ctrlLangs = formContent.getModule().getCtrlLangs(); - - - HashMap chosenLaguagePackage = ctrlLangs.get(currentLanguage); - HashMap updatedChosenLaguagePackage = new HashMap<>(chosenLaguagePackage); - for (Map.Entry item : chosenLaguagePackage.entrySet()) { - String key = item.getKey(); - boolean existSameKey = false; - for (ResourceItem resourceItem : resourceItemCollection) { - if (Objects.equals(resourceItem.getId(), item.getKey())) { - updatedChosenLaguagePackage.put(key, resourceItem.getValue()); - existSameKey = true; - break; - } - } - - if (!existSameKey) { - updatedChosenLaguagePackage.remove(key); - } - } - ctrlLangs.put(currentLanguage, updatedChosenLaguagePackage); - - FormMetadataContentService.getInstance().setFormContent(formMetadataContent, formContent); - - // 回写表单元数据 - MetadataService metadataService = SpringBeanUtils.getBean(MetadataService.class); - metadataService.saveMetadata(targetFormMetadata, targetFormMetadata.getRelativePath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + targetFormMetadata.getHeader().getFileName()); - } - - private static List getRefResourceMetadataHeaderCollection(String formMetadataId, String formMetadataPath) { - MetadataService metadataService = SpringBeanUtils.getBean(MetadataService.class); - return metadataService.getResourceMetadata(formMetadataId, formMetadataPath); - } - - private static GspMetadata getRefResourceMetadata(String formMetadataId, String formMetadataPath) { - List resourceMetadataList = getRefResourceMetadataList(formMetadataId, formMetadataPath); - if (resourceMetadataList == null || resourceMetadataList.size() <= 0) { - return null; - } - - // 一个表单元数据仅能关联一个资源元数据 - return resourceMetadataList.get(0); - } - - private static List getRefResourceMetadataList(String formMetadataId, String formMetadataPath) { - List resourceMetadataHeaderCollection = getRefResourceMetadataHeaderCollection(formMetadataId, formMetadataPath); - - // 获取资源元数据 - return getResourceMetadata(resourceMetadataHeaderCollection, formMetadataPath); + public List getFormResourceWithMetaData(GspMetadata metadata, String language, String baseFormPath) { + return this.formResourceManager.getFormResourceWithMetaData(metadata, language, baseFormPath); } - private static ArrayList getResourceMetadata(List resourceMetadataHeaderList, String formMetadataPath) { - if (resourceMetadataHeaderList == null || resourceMetadataHeaderList.size() <= 0 || StringUtility.isNullOrEmpty(formMetadataPath)) { - return null; - } - - ArrayList resourceMetadataList = new ArrayList<>(); - for (MetadataHeader resouceMetadataHeader : resourceMetadataHeaderList) { - String resouceMetadataFileName = resouceMetadataHeader.getFileName(); - GspMetadata resourceMetadata = MetadataUtility.getInstance().getMetadataWithDesign(resouceMetadataFileName, formMetadataPath); - if (resourceMetadata != null) { - resourceMetadataList.add(resourceMetadata); - } - } - - return resourceMetadataList; - } - - /** - * 导出语言包 - */ - public static void exportLanguagePackage(String formMetadataFileName, String formMetadataPath) { - // (1) 获取表单元数据 - GspMetadata formMetadata = MetadataUtility.getInstance().getMetadataWithDesign(formMetadataFileName, formMetadataPath); - exportLanguagePackage(formMetadata); - } - - /** - * 导出语言包 - */ - public static void exportLanguagePackage(GspMetadata formMetadata) { - if (formMetadata == null) { - return; - } - - FormMetadataContent formMetadataContent = (FormMetadataContent) formMetadata.getContent(); - FormDOM formDOM = FormMetadataContentService.getInstance().getFormContent(formMetadataContent); - - // 从表单文档中提取出语言包并保存为JSON文件 - HashMap> ctrlLangs = formDOM.getModule().getCtrlLangs(); - String ctrlLangsStr = SerializeUtility.getInstance().serialize(ctrlLangs, false); - String formMetadataFileName = formMetadata.getHeader().getFileName(); - String formMetadataPath = formMetadata.getRelativePath(); - - String languagePackageFileName = formMetadataFileName.replace(".frm", "_frm") + ".json"; - String languagePackageAbsoluteStoragePath = MetadataUtility.getInstance().getAbsolutePath(formMetadataPath); - FileUtility.writeFile(languagePackageAbsoluteStoragePath, languagePackageFileName, ctrlLangsStr); - } - - /** - * 同步本地语言包 - */ - public static void synchronizeLocalLanuagePackage(String formMetadataFileName, String formMetadataPath) { - GspMetadata formMetadata = MetadataUtility.getInstance().getMetadataWithDesign(formMetadataFileName, formMetadataPath); - synchronizeLocalLanuagePackage(formMetadata); - } - - /** - * 同步本地语言包 - */ - public static void synchronizeLocalLanuagePackage(GspMetadata formMetadata) { - HashMap> localLanguagePackage = getLocalLanguagePackage(formMetadata.getHeader().getFileName(), formMetadata.getRelativePath()); - - synchronizeLocalLanuagePackage(formMetadata, localLanguagePackage); - } - - private static HashMap> getLocalLanguagePackage(String formMetadataFileName, String formMetadataPath) { - String languagePackageFileName = formMetadataFileName.replace(".frm", "_frm") + ".json"; - String languagePackageAbsoluteStoragePath = MetadataUtility.getInstance().getAbsolutePath(formMetadataPath); - String localLanguagePackageFullPath = Paths.get(languagePackageAbsoluteStoragePath).resolve(languagePackageFileName).toString(); - String localLanguagePackageStr = FileUtility.readAsString(localLanguagePackageFullPath); - - HashMap> temp = new HashMap<>(); - return SerializeUtility.getInstance().deserialize(localLanguagePackageStr, temp.getClass()); - } - - private static void synchronizeLocalLanuagePackage(GspMetadata targetFormMetadata, HashMap> sourceLocalLanguagePackage) { - FormMetadataContent formMetadataContent = (FormMetadataContent) targetFormMetadata.getContent(); - FormDOM formContent = FormMetadataContentService.getInstance().getFormContent(formMetadataContent); - - // TODO: 优化更新算法 - // 更新语言包 - formContent.getModule().setCtrlLangs(sourceLocalLanguagePackage); - - // 更新表单元数据内容 - FormMetadataContentService.getInstance().setFormContent(formMetadataContent, formContent); - - // 更新表单元数据 - MetadataService metadataService = SpringBeanUtils.getBean(MetadataService.class); - metadataService.saveMetadata(targetFormMetadata, Paths.get(targetFormMetadata.getRelativePath()).resolve(targetFormMetadata.getHeader().getFileName()).toString()); - } - public static List getEnabledLanguageList() { - ILanguageService languageService = SpringBeanUtils.getBean(ILanguageService.class); - return languageService.getEnabledLanguages(); + public List getEnabledLanguageList() { + return this.languageService.getEnabledLanguages(); } - public static List getBuiltinLanguageList() { - ILanguageService languageService = SpringBeanUtils.getBean(ILanguageService.class); - return languageService.getBuiltinLanguages(); + public List getBuiltinLanguageList() { + return this.languageService.getBuiltinLanguages(); } - public static List getAllLanguageList() { - ILanguageService languageService = SpringBeanUtils.getBean(ILanguageService.class); - return languageService.getAllLanguages(); + public List getAllLanguageList() { + return this.languageService.getAllLanguages(); } - public static ResultMessage replicateForm(String sourceMetadataId, String sourceMetadataRelativePath, String targetMetadataCode, String targetMetadataName, String targetProjectName) { + public ResultMessage replicateForm(String sourceMetadataId, String sourceMetadataRelativePath, String targetMetadataCode, String targetMetadataName, String targetProjectName) { if (StringUtility.isNullOrEmpty(sourceMetadataId) || StringUtility.isNullOrEmpty(sourceMetadataRelativePath)) { - WebLogger.Instance.error("待复制表单元数据ID或路径为空。请检查前端请求参数是否正常。", FormMetataService.class.getName()); + WebLogger.Instance.error("待复制表单元数据ID或路径为空。请检查前端请求参数是否正常。", FormMetadataService.class.getName()); throw new WebCustomException("待复制表单元数据ID或路径为空。请检查前端请求参数是否正常。"); } if (StringUtility.isNullOrEmpty(targetMetadataCode) || StringUtility.isNullOrEmpty(targetMetadataName)) { diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormRelateMetadataService.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormRelateMetadataService.java index 62f33a23c2997ec775c03afb804d72e21d3aa2fc..40388487e6501fc9909c30bafe1050772c40a00d 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormRelateMetadataService.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/service/FormRelateMetadataService.java @@ -14,11 +14,11 @@ import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContentService; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.formmetadata.metadataanalysis.CommandsAnalysis; +import com.inspur.edp.web.formmetadata.metadatamanager.MetadataManagerParameter; import com.inspur.edp.web.formmetadata.metadatamanager.StateMachineMetadataManager; import io.iec.edp.caf.boot.context.CAFContext; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.core.session.CafSession; -import org.apache.commons.lang3.time.StopWatch; import java.util.*; import java.util.concurrent.*; @@ -164,9 +164,11 @@ public class FormRelateMetadataService { CAFContext.current.getService().setCurrentThreadPoolSession(cafSession); long start = System.currentTimeMillis(); StateMachineMetadataManager stateMachineMetadataManager = new StateMachineMetadataManager(executeEnvironment, false, formMetadata.getRelativePath()); - GspMetadata stateMachineMetadata = stateMachineMetadataManager.getStateMachine(smObjUri.toString(), - StringUtility.getOrDefault(firstStateMachine.get("code"), ""), StringUtility.getOrDefault(firstStateMachine.get("name"), ""), - StringUtility.getOrDefault(firstStateMachine.get("nameSpace"), "")); + MetadataManagerParameter metadataManagerParameter = MetadataManagerParameter.init(smObjUri.toString(), + StringUtility.getOrDefaultEmpty(firstStateMachine.get("code")), + StringUtility.getOrDefaultEmpty(firstStateMachine.get("name")), + StringUtility.getOrDefaultEmpty(firstStateMachine.get("nameSpace"))); + GspMetadata stateMachineMetadata = stateMachineMetadataManager.getStateMachine(metadataManagerParameter); WebLogger.Instance.info("获取状态机元数据耗时 " + (System.currentTimeMillis() - start) + " ms"); return stateMachineMetadata; }).thenApply(t -> { diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/webservice/FormMetadataWebServiceImpl.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/webservice/FormMetadataWebServiceImpl.java index 2f49b1c662396bedab813c1f5137bf67bceb1582..9f54e5ba435ebfc5ee7513df86a99f400d384f83 100644 --- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/webservice/FormMetadataWebServiceImpl.java +++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/webservice/FormMetadataWebServiceImpl.java @@ -16,33 +16,22 @@ package com.inspur.edp.web.formmetadata.webservice; -import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.web.common.customexception.WebCustomException; -import com.inspur.edp.web.common.entity.ResultCode; import com.inspur.edp.web.common.entity.ResultMessage; import com.inspur.edp.web.common.environment.ExecuteEnvironment; -import com.inspur.edp.web.common.metadata.MetadataGetterParameter; -import com.inspur.edp.web.common.metadata.MetadataTypeEnum; -import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.formmetadata.api.FormMetadataCommonService; import com.inspur.edp.web.formmetadata.api.FormMetadataWebService; import com.inspur.edp.web.formmetadata.api.dto.FormRelateMetadataInDesignParameterDto; import com.inspur.edp.web.formmetadata.api.dto.FormRelateMetadataInDesignResultDto; -import com.inspur.edp.web.formmetadata.api.dto.RelateMetadataTypeEnum; import com.inspur.edp.web.formmetadata.api.entity.FormSuInfoEntity; import com.inspur.edp.web.formmetadata.api.entity.ReplicateFormRequestBody; import com.inspur.edp.web.formmetadata.api.entity.SuInfoWithBizobjIdEntity; -import com.inspur.edp.web.formmetadata.manager.FormMetadataManager; -import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; -import com.inspur.edp.web.formmetadata.metadata.FormMetadataContentService; -import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import com.inspur.edp.web.formmetadata.service.FormRelateMetadataService; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.i18n.framework.api.language.EcpLanguage; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; /** @@ -60,7 +49,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public void synchronizeLanuagePackage(String fileName, String path) { - FormMetadataManager.getNewInstance().synchronizeLanuagePackage(fileName, path); + } /** @@ -71,7 +60,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public void exportLanguagePackage(String fileName, String path) { - FormMetadataManager.getNewInstance().exportLanguagePackage(fileName, path); + } /** @@ -82,7 +71,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public void synchronizeLocalLanuagePackage(String fileName, String path) { - FormMetadataManager.getNewInstance().synchronizeLocalLanuagePackage(fileName, path); + } /** @@ -90,7 +79,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public List getEnabledLanguageList() { - return FormMetadataManager.getNewInstance().getEnabledLanguageList(); + return FormMetadataService.getBeanInstance().getEnabledLanguageList(); } /** @@ -98,7 +87,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public List getBuiltinLanguageList() { - return FormMetadataManager.getNewInstance().getBuiltinLanguageList(); + return FormMetadataService.getBeanInstance().getBuiltinLanguageList(); } /** @@ -106,7 +95,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public List getAllLanguageList() { - return FormMetadataManager.getNewInstance().getAllLanguageList(); + return FormMetadataService.getBeanInstance().getAllLanguageList(); } /** @@ -114,7 +103,7 @@ public class FormMetadataWebServiceImpl implements FormMetadataWebService { */ @Override public ResultMessage replicateForm(ReplicateFormRequestBody replicateFormRequestBody) { - ResultMessage resultMessage = FormMetadataManager.getNewInstance().replicateForm(replicateFormRequestBody.getSourceMetadataId(), replicateFormRequestBody.getSourceMetadataRelativePath(), replicateFormRequestBody.getTargetMetadataCode(), replicateFormRequestBody.getTargetMetadataName(), replicateFormRequestBody.getTargetProjectName()); + ResultMessage resultMessage = FormMetadataService.getBeanInstance().replicateForm(replicateFormRequestBody.getSourceMetadataId(), replicateFormRequestBody.getSourceMetadataRelativePath(), replicateFormRequestBody.getTargetMetadataCode(), replicateFormRequestBody.getTargetMetadataName(), replicateFormRequestBody.getTargetProjectName()); return resultMessage; } diff --git a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/HtmlTemplateI18nResourceStrategyTest.java b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/HtmlTemplateI18nResourceStrategyTest.java index de64bd96e07330410b51eb950823f298f81b538a..d620cc255df3d5d76d5515625902dfcfb669b732 100644 --- a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/HtmlTemplateI18nResourceStrategyTest.java +++ b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/i18n/component/strategy/i18nresourcestrategy/HtmlTemplateI18nResourceStrategyTest.java @@ -1,14 +1,10 @@ package com.inspur.edp.web.formmetadata.i18n.component.strategy.i18nresourcestrategy; -import com.inspur.edp.lcm.metadata.api.entity.I18nResourceItem; -import com.inspur.edp.web.formmetadata.i18n.I18nResourceItemManager; import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static org.junit.Assert.*; - public class HtmlTemplateI18nResourceStrategyTest { private Pattern extractPattern = null; diff --git a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManagerTest.java b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManagerTest.java index dbbcf32f162018fbe5bc24b94021f61ad976abee..1b075596052b7dc4dc29dfdf1a72cdf3b09b064c 100644 --- a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManagerTest.java +++ b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManagerTest.java @@ -5,8 +5,6 @@ import org.junit.Test; import java.io.File; -import static org.junit.Assert.*; - public class FormMetadataCmdManagerTest { @Test public void test() { diff --git a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataReplicatorTest.java b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataReplicatorTest.java index 80757619a364dd626ac4e600189ed27c7be51ea7..2edc6e62db3f9e6d7948e866d246f1b11253d612 100644 --- a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataReplicatorTest.java +++ b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/FormMetadataReplicatorTest.java @@ -7,8 +7,6 @@ import org.junit.Test; import java.io.File; import java.util.Arrays; -import static org.junit.Assert.*; - public class FormMetadataReplicatorTest { private String source = "noah"; diff --git a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/MetadataCloneManagerTest.java b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/MetadataCloneManagerTest.java index 8f465c7f9194aae1b3d78ad0880cf429bac6e6ff..c11a36d060aa70bad679dec75c50735987b8fd64 100644 --- a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/MetadataCloneManagerTest.java +++ b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/replication/MetadataCloneManagerTest.java @@ -5,8 +5,6 @@ import org.junit.Test; import java.util.Optional; -import static org.junit.Assert.*; - public class MetadataCloneManagerTest { @Test diff --git a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/serializer/FormMetadataContentSerializerTest.java b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/serializer/FormMetadataContentSerializerTest.java index 8a8b41b3ea72b230b6ba80bee90e24c1758b2fd2..2e3b48af6149b51dc7114f4c85bb0310693d57bf 100644 --- a/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/serializer/FormMetadataContentSerializerTest.java +++ b/web-form-metadata/src/test/java/com/inspur/edp/web/formmetadata/serializer/FormMetadataContentSerializerTest.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.formmetadata.metadata.FormMetadataContent; -import org.junit.jupiter.api.Test; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; diff --git a/web-formconfig-api/src/main/java/com/inspur/edp/web/formconfig/api/dto/FormConfigItem.java b/web-formconfig-api/src/main/java/com/inspur/edp/web/formconfig/api/dto/FormConfigItem.java index 499dc1b12bbd7f3112eecde40fe75fa708e72eb1..3c7be91dccfa2135056d382a63d462e5655fcc8c 100644 --- a/web-formconfig-api/src/main/java/com/inspur/edp/web/formconfig/api/dto/FormConfigItem.java +++ b/web-formconfig-api/src/main/java/com/inspur/edp/web/formconfig/api/dto/FormConfigItem.java @@ -19,7 +19,6 @@ package com.inspur.edp.web.formconfig.api.dto; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.inspur.edp.web.common.utility.StringUtility; import lombok.Data; @Data diff --git a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/entity/ChosenFormList.java b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/entity/ChosenFormList.java index 66c10d5e8ff3e8be663d46d6b647f4773804e5c4..41dd4167527faa662a7aa391dfd6041c5924fab8 100644 --- a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/entity/ChosenFormList.java +++ b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/entity/ChosenFormList.java @@ -93,6 +93,7 @@ public class ChosenFormList { /** * 包含的列表项不为空 + * * @return */ public boolean isNotEmpty() { @@ -117,8 +118,9 @@ public class ChosenFormList { * * @param formCode */ - public void add(String formCode) { + public ChosenFormList add(String formCode) { this.addOrUpdate(formCode, false); + return this; } /** @@ -126,8 +128,9 @@ public class ChosenFormList { * * @param formCode */ - public void add(String formCode, boolean isForceDynamicForm) { + public ChosenFormList add(String formCode, boolean isForceDynamicForm) { this.addOrUpdate(formCode, isForceDynamicForm); + return this; } /** @@ -136,7 +139,7 @@ public class ChosenFormList { * @param formCode * @param isForceDynamicForm */ - public void addOrUpdate(String formCode, boolean isForceDynamicForm) { + private void addOrUpdate(String formCode, boolean isForceDynamicForm) { if (StringUtility.isNullOrEmpty(formCode)) { return; } diff --git a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeFormParameter.java b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeFormParameter.java index a3252ead44c1695c6a748728dd38747e94b97ee4..b761526006bc1fe682a56ba92e692c1160e07951 100644 --- a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeFormParameter.java +++ b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeFormParameter.java @@ -116,9 +116,6 @@ public class ZeroCodeFormParameter { formRefMetadataParameter.set(t); } }); - if (formRefMetadataParameter == null) { - return null; - } return formRefMetadataParameter.get(); } diff --git a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameter.java b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameter.java index e2ea7b56bdc05828c7921b979b4988f9af2815cf..9d6c14e31e380a891d3adc677aa7b5d76f80cb33 100644 --- a/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameter.java +++ b/web-frontendproject-api/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameter.java @@ -22,7 +22,6 @@ import com.inspur.edp.web.common.utility.StringUtility; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** * 零代码参数 @@ -137,8 +136,7 @@ public class ZeroCodeParameter { */ public boolean hasFormParameter(TerminalType terminalType) { boolean isMobile = terminalType == TerminalType.MOBILE; - List filterFormParameterList = this.getFormParameters().stream().filter(t -> t.isMobile() == isMobile).collect(Collectors.toList()); - return filterFormParameterList != null && filterFormParameterList.size() > 0; + return this.getFormParameters().stream().anyMatch(t -> t.isMobile() == isMobile); } public String getOriginalServiceUnitPath() { diff --git a/web-frontendproject/pom.xml b/web-frontendproject/pom.xml index 032f6c8c065c366b9861e75b93b9837e6ffd50fa..ee92bc89744056333e5249523cb43bd664d13342 100644 --- a/web-frontendproject/pom.xml +++ b/web-frontendproject/pom.xml @@ -66,7 +66,7 @@ com.inspur.edp - web-npmpackage-core + web-npmpackage-api com.inspur.edp diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectCompiler.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectCompiler.java index 7c0baea00fbf0b8200f55e8bcf67023cf5d9cff4..5a624a09f5bf9567129b8f39e3b6ac5120feadcf 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectCompiler.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectCompiler.java @@ -35,7 +35,6 @@ import com.inspur.edp.web.frontendproject.generate.FrontendProjectGenerate; import com.inspur.edp.web.frontendproject.metadata.FormMetadataManager; import com.inspur.edp.web.frontendproject.resolver.FormMetadataResolver; import com.inspur.edp.web.jitengine.JITEngineManager; -import lombok.extern.slf4j.Slf4j; import java.util.List; @@ -45,7 +44,6 @@ import java.util.List; * * @author guozhiqi */ -@Slf4j public class FrontendProjectCompiler implements MetadataCompileAction { /** * 工程编译扩展实现 @@ -53,7 +51,7 @@ public class FrontendProjectCompiler implements MetadataCompileAction { @Override public void metadataCompile(MetadataCompilerContext context) { if (context == null || StringUtility.isNullOrEmpty(context.getProjectPath())) { - log.error("the Project Path is Empty When Compiling a Project"); + WebLogger.Instance.error("the Project Path is Empty When Compiling a Project"); throw new WebCustomException("the Project Path is Empty "); } WebLogger.Instance.info("begin compile frontend project", FrontendProjectCompiler.class.getName()); @@ -119,7 +117,7 @@ public class FrontendProjectCompiler implements MetadataCompileAction { ResolveFormMetadataList formMetataList = FormMetadataManager.getFormMetadataList(projectPath, terminalType, ChosenFormList.getNewInstance()); // 不存在表单,将其认定为非前端工程 if (formMetataList.isEmpty()) { - log.debug("Debug_FrontendProjectCompiler_CompileFrontendProject: Current project is not a frontend project or has no forms!"); + WebLogger.Instance.info("Debug_FrontendProjectCompiler_CompileFrontendProject: Current project is not a frontend project or has no forms!"); return true; } // 2. 解析表单元数据 diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectDeployer.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectDeployer.java index 18eba489ca233e2908f5637d3c5f80868a1f219c..a6183d180c6716535ee3fb02e7d947c0a6d3d7d2 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectDeployer.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectDeployer.java @@ -18,18 +18,16 @@ package com.inspur.edp.web.frontendproject; import com.inspur.edp.ide.setting.api.entity.Deployment; import com.inspur.edp.lcm.debugger.api.service.DebuggerService; -import com.inspur.edp.lcm.metadata.api.entity.ExtractContext; import com.inspur.edp.lcm.metadata.api.entity.GspProject; -import com.inspur.edp.lcm.metadata.api.service.PackageGenerateService; -import com.inspur.edp.lcm.metadata.api.service.ProjectExtendService; import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.utility.StringUtility; +import com.inspur.edp.web.frontendproject.deploy.FrontMetadataDeployer; +import com.inspur.edp.web.frontendproject.deploy.ProjectDeployerToPublish; import com.inspur.edp.web.frontendproject.webservice.FormDynamicParameter; -import com.inspur.edp.web.jitengine.dynamicform.DynamicFormMetaFileNameGenerator; import io.iec.edp.caf.commons.utils.SpringBeanUtils; @@ -49,13 +47,15 @@ public class FrontendProjectDeployer { return; } String projectName = GspProjectUtility.getProjectName(projectPath); - // 部署PC - deploy(projectPath, projectName, TerminalType.PC, false); - //部署mobile - deploy(projectPath, projectName, TerminalType.MOBILE, false); + + + TerminalType.rescure(terminalType -> { + // 部署PC及Mobile + deploy(projectPath, projectName, terminalType, false); + }); // 部署前端交付物至目标publish目录 - deployToPublish(projectPath); + ProjectDeployerToPublish.deploy(projectPath); } /** @@ -76,7 +76,7 @@ public class FrontendProjectDeployer { deploy(projectPath, projectName, TerminalType.PC, isUseSingleForm); //部署mobile //deploy(projectPath, projectName, TerminalType.MOBILE, isJieXiForm); - deployToPublish(projectPath); + ProjectDeployerToPublish.deploy(projectPath); } else { // 仅拷贝metadata.js 及其对应的service编译后的脚本 String targetDeployBasePath = getTargetDeployBasePath(projectPath, TerminalType.PC); @@ -110,11 +110,6 @@ public class FrontendProjectDeployer { } } - // 执行metadata.js 文件拷贝 -// String dynamicFormMetadataJsFilenmae = DynamicFormMetaFileNameGenerator.generateMetaFileName(jieXiParameter.getFormCode()); -// String dynamicFormMetadataJs = FileUtility.combine(strFormPath, dynamicFormMetadataJsFilenmae); -// String targetMetadataJsFilePath = FileUtility.combine(targetFormMetadataPath, dynamicFormMetadataJsFilenmae); -// FileUtility.copyFile(dynamicFormMetadataJs, targetMetadataJsFilePath, true); //复制 String strFormServicePath = FileUtility.combineOptional(projectPath, "src", FrontendProjectConstant.PROJECT_GENERATE_PATH_FOR_Dynamic, "services", jieXiParameter.getFormCode().toLowerCase()); @@ -127,7 +122,7 @@ public class FrontendProjectDeployer { } // 部署前端元数据 - DeployFrontMetadata(projectPath); + FrontMetadataDeployer.deploy(projectPath); } } @@ -155,27 +150,6 @@ public class FrontendProjectDeployer { } } - /** - * 部署前端交付物至publish目录 - * - * @param projectPath - */ - private void deployToPublish(String projectPath) { - try { - GspProject projectInfo = GspProjectUtility.getProjectInformation(projectPath); - String projectName = projectInfo.getMetadataProjectName(); - // 移除工程名后的路径 - projectPath = projectPath.substring(0, projectPath.toLowerCase().lastIndexOf(projectName.toLowerCase()) + projectName.length()); - - ExtractContext extractContext = new ExtractContext(); - extractContext.setProjectPath(projectPath); - extractContext.setDeployPath(projectInfo.getSuDeploymentPath()); - FrontendProjectExtractor projectExtractor = new FrontendProjectExtractor(); - projectExtractor.extract(extractContext); - } catch (Exception ex) { - WebLogger.Instance.info("部署前端脚本至publish目录失败" + ex, this.getClass().getName()); - } - } private String getTargetDeployBasePath(String projectPath, TerminalType terminalType) { String targetDeployBasePath = ""; @@ -244,11 +218,7 @@ public class FrontendProjectDeployer { copyI18nResource(projectPath, targetBaseDeployPath, projectName, TerminalType.PC, true); // 调用元数据的部署,把元数据也部署过去。 - long beforeDT = System.currentTimeMillis(); - DeployFrontMetadata(projectPath); - long afterDt = System.currentTimeMillis(); - long ts = afterDt - beforeDT; - WebLogger.Instance.info("部署前端元数据所需的时间为" + ts + "ms", FrontendProjectDeployer.class.getName()); + FrontMetadataDeployer.deploy(projectPath); } /** @@ -312,17 +282,5 @@ public class FrontendProjectDeployer { FileUtility.copyFolder(sourcePath, destinationPath); } - private void DeployFrontMetadata(String projectPath) { - - PackageGenerateService packageGenerateService = SpringBeanUtils.getBean(PackageGenerateService.class); - packageGenerateService.generatePackage(projectPath); - ProjectExtendService projectExtendService = SpringBeanUtils.getBean(ProjectExtendService.class); - ExtractContext extractContext = new ExtractContext(); - extractContext.setProjectPath(projectPath); - - projectExtendService.extract(projectPath); - - projectExtendService.migration(projectPath); - } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectExtractor.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectExtractor.java index 34a340de13a5f1729046bcb5249d1f743734a5fb..cb30db7dbf1b31bafec079fe0713935868120669 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectExtractor.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectExtractor.java @@ -21,9 +21,9 @@ import com.inspur.edp.lcm.metadata.spi.ExtractAction; import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.utility.StringUtility; -import lombok.extern.slf4j.Slf4j; import java.util.Arrays; import java.util.List; @@ -31,9 +31,8 @@ import java.util.stream.Collectors; /** - * 前端工程提取器 + * 前端工程提取器 元数据回调 */ -@Slf4j public class FrontendProjectExtractor implements ExtractAction { /** @@ -49,8 +48,9 @@ public class FrontendProjectExtractor implements ExtractAction { // 目录A->(拷贝)->目录B String projectName = GspProjectUtility.getProjectName(context.getProjectPath()); - extract(context, projectName, TerminalType.PC); - extract(context, projectName, TerminalType.MOBILE); + TerminalType.rescure(terminalType -> { + extract(context, projectName, terminalType); + }); } /** @@ -60,14 +60,7 @@ public class FrontendProjectExtractor implements ExtractAction { * @param terminalType 类型 分为PC和移动 */ private void extract(ExtractContext context, String projectName, TerminalType terminalType) { - String projectPath = context.getProjectPath(); - // TODO: 规范工程类型后,开放这部分代码 - // string projectType = FrontendProjectUtility.GetProjectType(projectPath); - // if (projectType != "frontend") // 非前端工程,直接返回 - // { - // return; - // } // 表单元数据打包后目录 String sourceExtractPath = getSourceExtractPath(projectPath, projectName, terminalType, false); @@ -80,18 +73,6 @@ public class FrontendProjectExtractor implements ExtractAction { copyFrontendProjectExtract(projectName, sourceExtractPath, targetExtractBasePath, terminalType); - // 表单发布 不提取解析表单 -// if (terminalType == TerminalType.PC) { -// // 提取解析脚本到publish目录 -// projectPath = FileUtility.combine(projectPath, "metadata"); -// String sourceDynamicFormJs = TerminalType.PC.getResolveBasePath(projectPath, true); -// if (FileUtility.exists(sourceDynamicFormJs)) { -// String formPublishPath = terminalType.getPublishPathName(); -// String targetExtractPath = FileUtility.combine(targetExtractBasePath, formPublishPath, projectName); -// FileUtility.copyFolder(sourceDynamicFormJs, targetExtractPath); -// } -// } - copyI18nResource(projectPath, targetExtractBasePath, projectName, terminalType); } @@ -150,8 +131,7 @@ public class FrontendProjectExtractor implements ExtractAction { * 拷贝前端工程提取物到部署目录 */ private void copyFrontendProjectExtract(String projectName, String sourceExtractPath, String targetExtractBasePath, TerminalType terminalType) { - log.debug(String.format("Debug_CopyFrontendProjectExtract: projectName: %1$s, sourcePath: %2$s, destinationBasePath: %3$s", projectName, sourceExtractPath, targetExtractBasePath)); - + WebLogger.Instance.debug(String.format("Debug_CopyFrontendProjectExtract: projectName: %1$s, sourcePath: %2$s, destinationBasePath: %3$s", projectName, sourceExtractPath, targetExtractBasePath)); if (StringUtility.isNullOrEmpty(projectName) || StringUtility.isNullOrEmpty(sourceExtractPath) || StringUtility.isNullOrEmpty(targetExtractBasePath)) { return; } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectManager.java index b208f0de865948fcca109f3770605c03703c43bc..5707cbe1de39b22b5a599b0644a40f0d4a32a4e7 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectManager.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectManager.java @@ -20,26 +20,31 @@ import com.inspur.edp.web.common.entity.ResultCode; import com.inspur.edp.web.common.entity.ResultMessage; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.frontendproject.build.FrontendProjectBuild; -import com.inspur.edp.web.frontendproject.deploy.FrontendProjectDeploy; +import com.inspur.edp.web.frontendproject.deploy.FrontendProjectDeployer; import com.inspur.edp.web.frontendproject.entity.ChosenFormList; import com.inspur.edp.web.frontendproject.formdynamic.FormDynamicMetadataResolver; import com.inspur.edp.web.frontendproject.formdynamic.FormDynamicParameterValidator; import com.inspur.edp.web.frontendproject.formdynamic.FormDynamicSourceCodeGenerate; import com.inspur.edp.web.frontendproject.generate.FrontendProjectGenerate; +import com.inspur.edp.web.frontendproject.generate.FrontendProjectGenerateForBabel; import com.inspur.edp.web.frontendproject.webservice.FormDynamicParameter; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; +/** + * 前端工程 + * @author noah + */ public class FrontendProjectManager { private FrontendProjectManager() { } - private static class FrontendProjectManagerInstance { - public static final FrontendProjectManager frontendProjectManager = new FrontendProjectManager(); - } - + /** + * 该工程的调用频率极低 无需单例来占用启动及内存空间,及时释放才是王道 + * @return + */ public static FrontendProjectManager getInstance() { - return FrontendProjectManagerInstance.frontendProjectManager; + return new FrontendProjectManager(); } @@ -89,9 +94,9 @@ public class FrontendProjectManager { public final void babelBuildAndDeploy(String projectPath, ChosenFormList buildFormList) { FrontendProjectService service = FrontendProjectService.getInstance(); service.resolveFormMetadatas(projectPath, buildFormList); - FrontendProjectGenerate.generateFrontendProjectForBabel(projectPath); + FrontendProjectGenerateForBabel.generate(projectPath); FrontendProjectBuild.buildFrontendProjectForBabel(projectPath); - FrontendProjectDeploy.deployFrontendProjectForBabel(projectPath); + FrontendProjectDeployer.deployFrontendProjectForBabel(projectPath); } /** @@ -131,7 +136,7 @@ public class FrontendProjectManager { // 执行代码部署 // 单个表单的解析 整体工程的解析 - FrontendProjectDeploy.deployFrontendProjectForJieXi(dynamicParameter); + FrontendProjectDeployer.deployFrontendProjectForJieXi(dynamicParameter); return ResultCode.success(); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectService.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectService.java index 46f040098cc16c9c9c636f9b97a1e9f38d84bc77..69b092c4409b466970af7ed1069cdfdd24f171d0 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectService.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectService.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.frontendproject; -import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.frontendproject.debuguri.FormMetadataDebugUriService; @@ -30,32 +29,8 @@ public class FrontendProjectService { } - private static class FrontendProjectServiceInstance { - public static FrontendProjectService frontendProjectService = new FrontendProjectService(); - } - public static FrontendProjectService getInstance() { - return FrontendProjectServiceInstance.frontendProjectService; - } - - public final boolean isFrontendProject(String projectPath) { - String projectType = getProjectType(projectPath); - return projectType.equals(FrontendProjectConstant.FRONTEND_PROJECT_TYPE); - } - - private String getProjectType(String projectPath) { - if (StringUtility.isNullOrEmpty(projectPath)) { - throw new WebCustomException("Current Project Path is Null or Empty", null, ExceptionLevel.Warning); - } - - projectPath = FrontendProjectUtility.getProjectPathWithDevRootPath(projectPath); - - try { - // 提供基于全路径的接口 - return FrontendProjectUtility.getProjectType(projectPath); - } catch (RuntimeException exception) { - throw new WebCustomException(String.format("Error When Getting Project Type. Current Project Path is: %1$s", projectPath), exception); - } + return new FrontendProjectService(); } /** @@ -75,6 +50,13 @@ public class FrontendProjectService { } + /** + * 获取表单调试 url地址 + * @param formMetadataRelativePath + * @param formMetadataId + * @param formType + * @return + */ public static String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId, String formType) { return FormMetadataDebugUriService.getFormMetadataDebugUri(formMetadataRelativePath, formMetadataId, formType); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectUtility.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectUtility.java index a43f93b1f5bccab8a45fc0559d0f98a61b5bb3cf..020b86e0dcd04fa06afbd701cc4788df0fef07dc 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectUtility.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/FrontendProjectUtility.java @@ -22,6 +22,7 @@ import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.metadata.MetadataUtility; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.common.utility.StringUtility; import io.iec.edp.caf.commons.utils.SpringBeanUtils; @@ -37,6 +38,7 @@ public class FrontendProjectUtility { /** * 获取工程类型:前端工程和非前端工程 + * 判断是否是前端工程 */ public static String getProjectType(String projectPath) { if (StringUtility.isNullOrEmpty(projectPath)) { @@ -46,7 +48,7 @@ public class FrontendProjectUtility { // TODO: 更新算法,提供基于文件后缀的查找方法 // 历史原因,只能根据当前是否包含表单来区分前端工程和非前端工程 List formMetataList = getAllTypeFormMetadata(projectPath); - if (formMetataList != null && !formMetataList.isEmpty()) { + if (ListUtility.isNotEmpty(formMetataList)) { return FrontendProjectConstant.FRONTEND_PROJECT_TYPE; } else { return FrontendProjectConstant.NON_FRONTEND_PROJECT_TYPE; @@ -89,16 +91,14 @@ public class FrontendProjectUtility { */ public static String getProjectPathWithDevRootPath(String projectPath) { String projectPathWithDevRootPath = projectPath; - - if (!checkIfStartsWithDevRoot(projectPath)) { - String devRootPath = MetadataUtility.getInstance().getDevRootPath(); + String devRootPath = MetadataUtility.getInstance().getDevRootPath(); + if (!checkIfStartsWithDevRoot(projectPath, devRootPath)) { projectPathWithDevRootPath = java.nio.file.Paths.get(devRootPath).resolve(projectPath).toString(); } return projectPathWithDevRootPath; } - private static boolean checkIfStartsWithDevRoot(String projectPath) { - String devRootPath = MetadataUtility.getInstance().getDevRootPath(); + private static boolean checkIfStartsWithDevRoot(String projectPath, String devRootPath) { return StringUtility.startWith(FileUtility.getPlatformIndependentPath(projectPath), FileUtility.getPlatformIndependentPath(devRootPath)); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/NpmPackageCheckUpdate.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/NpmPackageCheckUpdate.java index 6afb26274fb5e36e5258a84c72bf28dbcd878572..311636f635dea60fdbd87539a7529b98af990a55 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/NpmPackageCheckUpdate.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/NpmPackageCheckUpdate.java @@ -17,15 +17,18 @@ package com.inspur.edp.web.frontendproject; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; -import com.inspur.edp.web.npmpackage.core.webservice.NpmPacakgeWebServiceImpl; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageService; +import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageWebService; +import com.inspur.edp.web.npmpackage.core.webservice.NpmPackageWebServiceImpl; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; /** * @author guozhiqi */ public class NpmPackageCheckUpdate { public static NpmPackageResponse check() { - NpmPacakgeWebServiceImpl npmPacakgeWebServiceImpl = new NpmPacakgeWebServiceImpl(); - return npmPacakgeWebServiceImpl.checkUpdate(); + NpmPackageService npmPackageService = SpringBeanUtils.getBean(NpmPackageService.class); + return npmPackageService.checkUpdate(); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FormMetadataDebugUriConfiguration.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FormMetadataDebugUriConfiguration.java index 79bc249f961a61b7baa4770af36fdba1bcfd8b5e..e0f2744d9840f935d85698d8ce2649072e46867a 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FormMetadataDebugUriConfiguration.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FormMetadataDebugUriConfiguration.java @@ -16,8 +16,6 @@ package com.inspur.edp.web.frontendproject.config; -import com.inspur.edp.web.frontendproject.debuguri.FormMetadataDebugUriWithMobile; -import com.inspur.edp.web.frontendproject.debuguri.FormMetadataDebugUriWithPC; import com.inspur.edp.web.frontendproject.webservice.FormMetadataDebugUriWebServiceImpl; import io.iec.edp.caf.rest.RESTEndpoint; import org.springframework.context.annotation.Bean; @@ -36,14 +34,4 @@ public class FormMetadataDebugUriConfiguration { return new RESTEndpoint("/dev/main/v1.0/form-debug-uri", new FormMetadataDebugUriWebServiceImpl() { }); } - - @Bean - public FormMetadataDebugUriWithPC getFormMetadataDebugUriInPC() { - return new FormMetadataDebugUriWithPC(); - } - - @Bean - public FormMetadataDebugUriWithMobile getFormMetadataDebugUriInMobile() { - return new FormMetadataDebugUriWithMobile(); - } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FrontendProjectConfiguration.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FrontendProjectConfiguration.java index 58411bf7a8e3527f69e8856ee943d71e319e3cde..5e695c33070085ff717f481d70e60b261269c4b7 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FrontendProjectConfiguration.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/config/FrontendProjectConfiguration.java @@ -16,6 +16,8 @@ package com.inspur.edp.web.frontendproject.config; +import com.inspur.edp.web.frontendproject.FrontendProjectManager; +import com.inspur.edp.web.frontendproject.projectinfo.ProjectInfoManager; import com.inspur.edp.web.frontendproject.webservice.FrontendProjectWebServiceImpl; import io.iec.edp.caf.rest.RESTEndpoint; import org.springframework.context.annotation.Bean; @@ -34,4 +36,9 @@ public class FrontendProjectConfiguration { public RESTEndpoint frontendProjectWebServiceEndPoint() { return new RESTEndpoint("/dev/main/v1.0/frontend-project", new FrontendProjectWebServiceImpl()); } + + @Bean + public ProjectInfoManager projectInfoManager() { + return new ProjectInfoManager(); + } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/AbstractFormMetadataDebugUri.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/AbstractFormMetadataDebugUri.java index 87b4f4a65476b08656564a8bb76644269862a77d..21568d4ceab3e080ce386ae0dcd35ad9a8a4cb57 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/AbstractFormMetadataDebugUri.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/AbstractFormMetadataDebugUri.java @@ -16,16 +16,19 @@ package com.inspur.edp.web.frontendproject.debuguri; +import com.inspur.edp.lcm.metadata.api.entity.GspProject; import com.inspur.edp.lcm.metadata.api.entity.MetadataProject; import com.inspur.edp.web.appconfig.api.entity.GspAppConfig; import com.inspur.edp.web.appconfig.core.service.GspAppConfigService; +import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.metadata.MetadataProjectUtility; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.frontendproject.FrontendProjectUtility; import com.inspur.edp.web.pageflow.metadata.entity.PageFlowMetadataEntity; -import com.inspur.edp.web.pageflow.metadata.service.RouteMetataService; +import com.inspur.edp.web.pageflow.metadata.service.RouteMetadataService; /** * @Title: AbstractFormMetadataDebugUri @@ -34,8 +37,8 @@ import com.inspur.edp.web.pageflow.metadata.service.RouteMetataService; * @Version: V1.0 * @Create: 2022/7/4 17:04 */ -public abstract class AbstractFormMetadataDebugUri { - protected TerminalType terminalType; +abstract class AbstractFormMetadataDebugUri implements FormMetadataDebugUri { + private TerminalType terminalType; public AbstractFormMetadataDebugUri(TerminalType terminalType) { this.terminalType = terminalType; @@ -48,7 +51,20 @@ public abstract class AbstractFormMetadataDebugUri { * @param formMetadataId * @return */ - public abstract String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId); + public String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId) { + // 1. 获取表单元数据对应route Uri + String routeUri = this.generateRouteUri(formMetadataRelativePath, formMetadataId); + + // 2. 获取部署路径 + return this.generateDebugUri(formMetadataRelativePath, routeUri); + } + + /** + * 构造路由跳转Uri地址 + * + * @return + */ + protected abstract String generateRouteUri(String formMetadataRelativePath, String formMetadataId); /** * 判断是否为PC表单 @@ -56,7 +72,25 @@ public abstract class AbstractFormMetadataDebugUri { * @return */ protected boolean isPc() { - return this.terminalType == TerminalType.PC; + return TerminalType.isPC(this.terminalType); + } + + /** + * 构造debugUri地址 + * + * @param formMetadataRelativePath + * @param routeUri + * @return + */ + protected String generateDebugUri(String formMetadataRelativePath, String routeUri) { + // 2. 获取部署路径 + MetadataProject metadataProject = MetadataUtility.getInstance().getMetadataProject(formMetadataRelativePath).orElseThrow(() -> new WebCustomException(String.format("依据工程路径%s获取工程信息为空", formMetadataRelativePath))); + GspProject gspProject = GspProjectUtility.getProjectInformation(metadataProject.getProjectPath()); + String deploymentPath = "/" + gspProject.getSuDeploymentPath().toLowerCase(); + + String projectName = GspProjectUtility.getProjectName(gspProject); + + return deploymentPath + "/" + this.terminalType.getPublishPathName() + "/" + projectName + "/" + "index.html" + "#" + routeUri; } /** @@ -76,9 +110,9 @@ public abstract class AbstractFormMetadataDebugUri { } // 2.获取路由元数据中内容 if (isPc()) { - pageFlowMetadataEntity = RouteMetataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfig.getPageFlowMetadataID(), appConfig.getPageFlowMetadataFileName(), projectPath); + pageFlowMetadataEntity = RouteMetadataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfig.getPageFlowMetadataID(), appConfig.getPageFlowMetadataFileName(), projectPath); } else { - pageFlowMetadataEntity = RouteMetataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfig.getMobilePageFlowMetadataID(), appConfig.getMobilePageFlowMetadataFileName(), projectPath); + pageFlowMetadataEntity = RouteMetadataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfig.getMobilePageFlowMetadataID(), appConfig.getMobilePageFlowMetadataFileName(), projectPath); } return pageFlowMetadataEntity; @@ -107,7 +141,9 @@ public abstract class AbstractFormMetadataDebugUri { } protected String getFormMetadataRouteUri(String formMetadataRelativePath, String formMetadataId) { - MetadataProject metadataProject = MetadataProjectUtility.getMetadataProject(formMetadataRelativePath); + MetadataProject metadataProject = MetadataProjectUtility.getMetadataProject(formMetadataRelativePath).orElseThrow(() -> + new WebCustomException(String.format("根据工程路径%s获取对应工程信息为空", formMetadataRelativePath)) + ); return getFormMetadataRouteUriWithoutDevPath(metadataProject.getProjectPath(), formMetadataId); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUri.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUri.java new file mode 100644 index 0000000000000000000000000000000000000000..b435900da95b9aa8638d57923de8af440b205bbc --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUri.java @@ -0,0 +1,10 @@ +package com.inspur.edp.web.frontendproject.debuguri; + +/** + * 表单调试Url + * @author noah + * 2023/7/8 17:00 + */ + interface FormMetadataDebugUri { + String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId); +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriService.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriService.java index 79147e2816c6bcb3c0c6a48acb012e8f274925b8..6ab7921fdbbfef834ec81294d8578d2c39cf3cdf 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriService.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriService.java @@ -16,8 +16,6 @@ package com.inspur.edp.web.frontendproject.debuguri; -import io.iec.edp.caf.commons.utils.SpringBeanUtils; - /** * description: 表单调试地址 * @@ -34,19 +32,28 @@ public class FormMetadataDebugUriService { * @return */ public static String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId, String formType) { - String debugUri; + FormMetadataDebugUri formMetadataDebugUri = getFormDebugUri(formType); + return formMetadataDebugUri.getFormMetadataDebugUri(formMetadataRelativePath, formMetadataId); + } + + /** + * 根据表单类型获取对应的执行实例 + * + * @param formType + * @return + */ + private static FormMetadataDebugUri getFormDebugUri(String formType) { + FormMetadataDebugUri debugUri; switch (formType) { case "mobile": - debugUri = SpringBeanUtils.getBean(FormMetadataDebugUriWithMobile.class).getFormMetadataDebugUri(formMetadataRelativePath, formMetadataId); + debugUri = new FormMetadataDebugUriWithMobile(); break; case "pc": default: - debugUri = SpringBeanUtils.getBean(FormMetadataDebugUriWithPC.class).getFormMetadataDebugUri(formMetadataRelativePath, formMetadataId); + debugUri = new FormMetadataDebugUriWithPC(); break; } - return debugUri; } - } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithMobile.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithMobile.java index 1a7e59f43886743f2b6f231d89460b049b4c5d27..89e7355c4181635fb7827c3513cb8a39add280b5 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithMobile.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithMobile.java @@ -17,10 +17,7 @@ package com.inspur.edp.web.frontendproject.debuguri; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; -import com.inspur.edp.lcm.metadata.api.entity.GspProject; -import com.inspur.edp.lcm.metadata.api.entity.MetadataProject; import com.inspur.edp.web.common.entity.TerminalType; -import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.metadata.MetadataUtility; @@ -39,14 +36,13 @@ import java.util.HashMap; * @author Noah Guo * @date 2021/03/17 */ -public class FormMetadataDebugUriWithMobile extends AbstractFormMetadataDebugUri { + class FormMetadataDebugUriWithMobile extends AbstractFormMetadataDebugUri { public FormMetadataDebugUriWithMobile() { super(TerminalType.MOBILE); } @Override - public String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId) { - // 1. 获取表单元数据对应route Uri + protected String generateRouteUri(String formMetadataRelativePath, String formMetadataId) { String formRouteUri = getFormMetadataRouteUri(formMetadataRelativePath, formMetadataId); // 获取表单实体,进而获取表单代码 @@ -80,14 +76,7 @@ public class FormMetadataDebugUriWithMobile extends AbstractFormMetadataDebugUri defaultPageUri = component.get("id").toString(); } } - - // 2. 获取部署路径 - MetadataProject metadataProject = MetadataUtility.getInstance().getMetadataProject(formMetadataRelativePath); - GspProject gspProject = GspProjectUtility.getProjectInformation(metadataProject.getProjectPath()); - - String projectName = GspProjectUtility.getProjectName(gspProject); - - return "/" + gspProject.getSuDeploymentPath().toLowerCase() + "/" + TerminalType.MOBILE.getPublishPathName() + "/" + projectName + "/" + "index.html" + "#" + "/" + formRouteUri + "/" + defaultPageUri; + return "/" + formRouteUri + "/" + defaultPageUri; } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithPC.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithPC.java index 25e50d4fb5f05267f7867d78fea2bfcecd614525..4da75a5465c5e5ba0b9cfb7fa24e6cf808f380ba 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithPC.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/debuguri/FormMetadataDebugUriWithPC.java @@ -16,37 +16,21 @@ package com.inspur.edp.web.frontendproject.debuguri; -import com.inspur.edp.lcm.metadata.api.entity.GspProject; -import com.inspur.edp.lcm.metadata.api.entity.MetadataProject; import com.inspur.edp.web.common.entity.TerminalType; -import com.inspur.edp.web.common.metadata.GspProjectUtility; -import com.inspur.edp.web.common.metadata.MetadataUtility; /** - * description: 表单调试Url地址 + * description: PC 表单调试Url地址 * * @author Noah Guo * @date 2021/03/17 */ -public class FormMetadataDebugUriWithPC extends AbstractFormMetadataDebugUri { +class FormMetadataDebugUriWithPC extends AbstractFormMetadataDebugUri { public FormMetadataDebugUriWithPC() { super(TerminalType.PC); } @Override - public String getFormMetadataDebugUri(String formMetadataRelativePath, String formMetadataId) { - // 1. 获取表单元数据对应route Uri - String routeUri = getFormMetadataRouteUri(formMetadataRelativePath, formMetadataId); - - // 2. 获取部署路径 - MetadataProject metadataProject = MetadataUtility.getInstance().getMetadataProject(formMetadataRelativePath); - GspProject gspProject = GspProjectUtility.getProjectInformation(metadataProject.getProjectPath()); - String deploymentPath = "/" + gspProject.getSuDeploymentPath().toLowerCase(); - - String projectName = GspProjectUtility.getProjectName(gspProject); - - return deploymentPath + "/" + TerminalType.PC.getPublishPathName() + "/" + projectName + "/" + "index.html" + "#" + routeUri; + protected String generateRouteUri(String formMetadataRelativePath, String formMetadataId) { + return getFormMetadataRouteUri(formMetadataRelativePath, formMetadataId); } - - } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontMetadataDeployer.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontMetadataDeployer.java new file mode 100644 index 0000000000000000000000000000000000000000..edb38885c6203c512b56f02f220464e1d0199552 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontMetadataDeployer.java @@ -0,0 +1,32 @@ +package com.inspur.edp.web.frontendproject.deploy; + +import com.inspur.edp.lcm.metadata.api.entity.ExtractContext; +import com.inspur.edp.lcm.metadata.api.service.PackageGenerateService; +import com.inspur.edp.lcm.metadata.api.service.ProjectExtendService; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; + + +/** + * 前端元数据部署 + * + * @author noah + */ +public class FrontMetadataDeployer { + /** + * 元数据部署 + * @param projectPath + */ + public static void deploy(String projectPath) { + + PackageGenerateService packageGenerateService = SpringBeanUtils.getBean(PackageGenerateService.class); + packageGenerateService.generatePackage(projectPath); + + ProjectExtendService projectExtendService = SpringBeanUtils.getBean(ProjectExtendService.class); + ExtractContext extractContext = new ExtractContext(); + extractContext.setProjectPath(projectPath); + + projectExtendService.extract(projectPath); + + projectExtendService.migration(projectPath); + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeploy.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeployer.java similarity index 85% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeploy.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeployer.java index 2f8bf0c74a125470e69436f27bf23bb85950b289..62f81741867318f92eabdfddb46637c3ca56efd2 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeploy.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/FrontendProjectDeployer.java @@ -18,7 +18,6 @@ package com.inspur.edp.web.frontendproject.deploy; import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.utility.StringUtility; -import com.inspur.edp.web.frontendproject.FrontendProjectDeployer; import com.inspur.edp.web.frontendproject.FrontendProjectUtility; import com.inspur.edp.web.frontendproject.webservice.FormDynamicParameter; import io.iec.edp.caf.commons.exception.ExceptionLevel; @@ -28,7 +27,7 @@ import io.iec.edp.caf.commons.exception.ExceptionLevel; * * @author guozhiqi */ -public class FrontendProjectDeploy { +public class FrontendProjectDeployer { public static void deployFrontendProject(String projectPath) { projectPath = FrontendProjectUtility.getProjectPathWithDevRootPath(projectPath); @@ -37,7 +36,7 @@ public class FrontendProjectDeploy { } try { - FrontendProjectDeployer frontendProjectDeployer = new FrontendProjectDeployer(); + com.inspur.edp.web.frontendproject.FrontendProjectDeployer frontendProjectDeployer = new com.inspur.edp.web.frontendproject.FrontendProjectDeployer(); frontendProjectDeployer.deploy(projectPath); } catch (RuntimeException exception) { throw new WebCustomException(String.format("Error When Deploying a Frontend. Current Project Path is: %1$s", projectPath), exception); @@ -57,7 +56,7 @@ public class FrontendProjectDeploy { } try { - FrontendProjectDeployer frontendProjectDeployer = new FrontendProjectDeployer(); + com.inspur.edp.web.frontendproject.FrontendProjectDeployer frontendProjectDeployer = new com.inspur.edp.web.frontendproject.FrontendProjectDeployer(); frontendProjectDeployer.deployForJieXi(projectPath, dynamicParameter); } catch (RuntimeException exception) { throw new WebCustomException(String.format("Error When Deploying a Frontend. Current Project Path is: %1$s", projectPath), exception); @@ -77,7 +76,7 @@ public class FrontendProjectDeploy { } try { - FrontendProjectDeployer frontendProjectDeployer = new FrontendProjectDeployer(); + com.inspur.edp.web.frontendproject.FrontendProjectDeployer frontendProjectDeployer = new com.inspur.edp.web.frontendproject.FrontendProjectDeployer(); frontendProjectDeployer.deployForBabel(projectPath); } catch (RuntimeException exception) { throw new WebCustomException(String.format("Error When Deploying a Frontend. Current Project Path is: %1$s", projectPath), exception); diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerForBabel.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerForBabel.java new file mode 100644 index 0000000000000000000000000000000000000000..a709ffdad11967e0aeb86c7e68656d16f1f97c23 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerForBabel.java @@ -0,0 +1,8 @@ +package com.inspur.edp.web.frontendproject.deploy; + +/** + * @author noah + * 2023/7/8 15:00 + */ +public class ProjectDeployerForBabel { +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerToPublish.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerToPublish.java new file mode 100644 index 0000000000000000000000000000000000000000..016df35788d4aaf6deb75cf1f8cfcdeac4c2b452 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/deploy/ProjectDeployerToPublish.java @@ -0,0 +1,37 @@ +package com.inspur.edp.web.frontendproject.deploy; + +import com.inspur.edp.lcm.metadata.api.entity.ExtractContext; +import com.inspur.edp.lcm.metadata.api.entity.GspProject; +import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.common.metadata.GspProjectUtility; +import com.inspur.edp.web.frontendproject.FrontendProjectExtractor; + +/** + * 部署交付物到publish目录 + * + * @author noah + * 2023/7/8 15:04 + */ +public class ProjectDeployerToPublish { + /** + * 部署前端交付物至publish目录 + * + * @param projectPath + */ + public static void deploy(String projectPath) { + try { + GspProject projectInfo = GspProjectUtility.getProjectInformation(projectPath); + String projectName = projectInfo.getMetadataProjectName(); + // 移除工程名后的路径 + projectPath = projectPath.substring(0, projectPath.toLowerCase().lastIndexOf(projectName.toLowerCase()) + projectName.length()); + + ExtractContext extractContext = new ExtractContext(); + extractContext.setProjectPath(projectPath); + extractContext.setDeployPath(projectInfo.getSuDeploymentPath()); + FrontendProjectExtractor projectExtractor = new FrontendProjectExtractor(); + projectExtractor.extract(extractContext); + } catch (Exception ex) { + WebLogger.Instance.error("部署前端脚本至publish目录失败" + ex, ProjectDeployerToPublish.class.getName()); + } + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerate.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerate.java index 65f1e6671f226b7065818a73f9b01e0ce8993fab..f70b79756e548ed1766e052dcae71b32a747c0cb 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerate.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerate.java @@ -16,12 +16,10 @@ package com.inspur.edp.web.frontendproject.generate; -import com.inspur.edp.web.common.constant.FrontendProjectConstant; import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.environment.EnvironmentException; import com.inspur.edp.web.common.io.FileUtility; -import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.frontendproject.FrontendProjectUtility; @@ -55,13 +53,12 @@ public class FrontendProjectGenerate { try { - if (FormMetadataManager.checkFormMetadataExists(projectPath, TerminalType.PC, generateParameter.getBuildFormList(), generateParameter.isForceUseJieXi(), true)) { - generateFrontendProject(generateParameter, TerminalType.PC); - } + TerminalType.rescure(terminalType -> { + if (FormMetadataManager.checkFormMetadataExists(projectPath, terminalType, generateParameter.getBuildFormList(), generateParameter.isForceUseJieXi(), true)) { + generateFrontendProject(generateParameter, terminalType); + } + }); - if (FormMetadataManager.checkFormMetadataExists(projectPath, TerminalType.MOBILE, generateParameter.getBuildFormList(), generateParameter.isForceUseJieXi(), true)) { - generateFrontendProject(generateParameter, TerminalType.MOBILE); - } } catch (EnvironmentException ex) { throw new WebCustomException(ex.getMessage(), ex); } catch (RuntimeException exception) { @@ -80,13 +77,13 @@ public class FrontendProjectGenerate { * 基于解析后的表单代码生成前端工程 */ private static void generateFrontendProject(FrontendProjectGenerateParameter generateParameter, TerminalType terminalType) { - // TODO refNodeMOdules 设置为了null 需调整 boolean isJieXiForm = generateParameter != null && generateParameter.isForceUseJieXi(); String devRootPath = MetadataUtility.getInstance().getDevRootPath(); if (!FileUtility.isAbsolute(devRootPath)) { devRootPath = FileUtility.getAbsolutePathHead(devRootPath) + devRootPath; } JITEngineManager.generateFrontendProject(generateParameter, devRootPath, terminalType); + String targetServiceProductPath = SourceServicePathGenerator.getTargetServiceProductPath(generateParameter.getProjectPath(), terminalType, isJieXiForm); String sourceServiceProductPath = SourceServicePathGenerator.getSourceServiceProductPath(generateParameter.getProjectPath(), terminalType, generateParameter.isForceUseJieXi()); @@ -95,30 +92,4 @@ public class FrontendProjectGenerate { FileUtility.copyFolder(sourceServiceProductPath, targetServiceProductPath); } } - - public static void generateFrontendProjectForBabel(String projectPath) { - projectPath = FrontendProjectUtility.getProjectPathWithDevRootPath(projectPath); - - if (StringUtility.isNullOrEmpty(projectPath)) { - throw new WebCustomException("Current Project Path is Null or Empty", null, ExceptionLevel.Warning); - } - - try { - - JITEngineManager.generateFrontendProjectForBabel(projectPath); - - // 生成后动作 - String babelProjectName = GspProjectUtility.getProjectName(projectPath) + "forbabel"; - String targetServiceProductPath = projectPath + "/src" + "/" + FrontendProjectConstant.PROJECT_GENERATE_PATH_FOR_BABEL + "/projects" + "/" + babelProjectName + "/src/app"; - String sourceServiceProductPath = java.nio.file.Paths.get(projectPath).resolve(TerminalType.PC.getServiceRelativePath()).toString(); - boolean isPathExists = FileUtility.exists(sourceServiceProductPath); - if (isPathExists) { - FileUtility.copyFolder(sourceServiceProductPath, targetServiceProductPath); - } - } catch (EnvironmentException ex) { - throw new WebCustomException(ex.getMessage(), ex); - } catch (RuntimeException exception) { - throw new WebCustomException(String.format("Error When Generating a Frontend Project. Current Project Path is: %1$s。 %2$s", projectPath, exception.getMessage()), exception); - } - } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerateForBabel.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerateForBabel.java new file mode 100644 index 0000000000000000000000000000000000000000..5274a1adc86ebde4cc4b96db516c9751d3e22e53 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/generate/FrontendProjectGenerateForBabel.java @@ -0,0 +1,44 @@ +package com.inspur.edp.web.frontendproject.generate; + +import com.inspur.edp.web.common.constant.FrontendProjectConstant; +import com.inspur.edp.web.common.customexception.WebCustomException; +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.environment.EnvironmentException; +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.metadata.GspProjectUtility; +import com.inspur.edp.web.common.utility.StringUtility; +import com.inspur.edp.web.frontendproject.FrontendProjectUtility; +import com.inspur.edp.web.jitengine.JITEngineManager; +import io.iec.edp.caf.commons.exception.ExceptionLevel; + +/** + * 前端工程执行babel 生成 + * @author noah + */ +public class FrontendProjectGenerateForBabel { + public static void generate(String projectPath) { + projectPath = FrontendProjectUtility.getProjectPathWithDevRootPath(projectPath); + + if (StringUtility.isNullOrEmpty(projectPath)) { + throw new WebCustomException("Current Project Path is Null or Empty", null, ExceptionLevel.Warning); + } + + try { + + JITEngineManager.generateFrontendProjectForBabel(projectPath); + + // 生成后动作 + String babelProjectName = GspProjectUtility.getProjectName(projectPath) + "forbabel"; + String targetServiceProductPath = projectPath + "/src" + "/" + FrontendProjectConstant.PROJECT_GENERATE_PATH_FOR_BABEL + "/projects" + "/" + babelProjectName + "/src/app"; + String sourceServiceProductPath = java.nio.file.Paths.get(projectPath).resolve(TerminalType.PC.getServiceRelativePath()).toString(); + boolean isPathExists = FileUtility.exists(sourceServiceProductPath); + if (isPathExists) { + FileUtility.copyFolder(sourceServiceProductPath, targetServiceProductPath); + } + } catch (EnvironmentException ex) { + throw new WebCustomException(ex.getMessage(), ex); + } catch (RuntimeException exception) { + throw new WebCustomException(String.format("Error When Generating a Frontend Project. Current Project Path is: %1$s。 %2$s", projectPath, exception.getMessage()), exception); + } + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/projectinfo/ProjectInfoManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/projectinfo/ProjectInfoManager.java new file mode 100644 index 0000000000000000000000000000000000000000..461f24868d063f7fc60cc6f2b7aae87400a0ea37 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/projectinfo/ProjectInfoManager.java @@ -0,0 +1,41 @@ +package com.inspur.edp.web.frontendproject.projectinfo; + +import com.inspur.edp.web.common.constant.FrontendProjectConstant; +import com.inspur.edp.web.common.customexception.WebCustomException; +import com.inspur.edp.web.common.utility.StringUtility; +import com.inspur.edp.web.frontendproject.FrontendProjectUtility; +import io.iec.edp.caf.commons.exception.ExceptionLevel; + +/** + * 工程信息 + * @author noah + * + * 2023/7/8 14:53 + */ +public class ProjectInfoManager { + /** + * 当前工程是否为前端工程 + * + * @param projectPath + * @return + */ + public final boolean isFrontendProject(String projectPath) { + String projectType = getProjectType(projectPath); + return projectType.equals(FrontendProjectConstant.FRONTEND_PROJECT_TYPE); + } + + private String getProjectType(String projectPath) { + if (StringUtility.isNullOrEmpty(projectPath)) { + throw new WebCustomException("Current Project Path is Null or Empty", null, ExceptionLevel.Warning); + } + + projectPath = FrontendProjectUtility.getProjectPathWithDevRootPath(projectPath); + + try { + // 提供基于全路径的接口 + return FrontendProjectUtility.getProjectType(projectPath); + } catch (RuntimeException exception) { + throw new WebCustomException(String.format("Error When Getting Project Type. Current Project Path is: %1$s", projectPath), exception); + } + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/resolver/FormMetadataResolver.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/resolver/FormMetadataResolver.java index 8305a85ec171d0ba35d71d4cfc99f70bdc9f67ca..8ff0d2ad9e449da472d5bd9be1ca07a1922987cc 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/resolver/FormMetadataResolver.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/resolver/FormMetadataResolver.java @@ -16,7 +16,6 @@ package com.inspur.edp.web.frontendproject.resolver; -import com.inspur.edp.cdp.web.component.metadata.define.WebComponentMetadata; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.common.io.FileUtility; @@ -24,7 +23,7 @@ import com.inspur.edp.web.formmetadata.i18n.constant.I18nResourceConstant; import com.inspur.edp.web.formmetadata.metadataanalysis.CommandsAnalysis; import com.inspur.edp.web.formmetadata.resolver.ResolveFormMetadataItem; import com.inspur.edp.web.formmetadata.resolver.ResolveFormMetadataList; -import com.inspur.edp.web.formmetadata.service.FormMetataService; +import com.inspur.edp.web.formmetadata.service.FormMetadataService; import com.inspur.edp.web.frontendproject.customservice.SourceServicePathGenerator; import com.inspur.edp.web.frontendproject.entity.ChosenFormList; import com.inspur.edp.web.frontendproject.metadata.FormMetadataManager; @@ -33,7 +32,9 @@ import com.inspur.edp.web.jitengine.expressions.ExpressionManifest; import com.inspur.edp.web.jitengine.expressions.ExpressionManifestManager; import com.inspur.edp.web.jitengine.i18nresource.GenerateResourceManager; import com.inspur.edp.web.jitengine.i18nresource.GeneratedI18nResourceList; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; +import javax.annotation.Resource; import java.util.HashMap; /** @@ -42,6 +43,7 @@ import java.util.HashMap; * @author guozhiqi */ public class FormMetadataResolver { + /** * 表单元数据解析 * @@ -97,7 +99,9 @@ public class FormMetadataResolver { // 解析前检测 // TODO:尝试获取资源元数据,如果不存在则生成 为了保证中文资源必须存在 String formPath = resolveFormMetadataItem.getGspMetadata().getRelativePath(); - FormMetataService.reSaveFormIfResourceNotExists(resolveFormMetadataItem.getGspMetadata(), formPath); + + FormMetadataService formMetadataService = SpringBeanUtils.getBean(FormMetadataService.class); + formMetadataService.reSaveFormIfResourceNotExists(resolveFormMetadataItem.getGspMetadata(), formPath); String targetResolveBasePath = terminalType.getResolveBasePath(projectPath, resolveFormMetadataItem.getCalculateIsDynamicForm()); diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/FrontendProjectWebServiceImpl.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/FrontendProjectWebServiceImpl.java index 053c69139636e3f3efaad9d5a7b5c4387565a200..2f863fb265b92ba17693d0819a9627b50088d09b 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/FrontendProjectWebServiceImpl.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/FrontendProjectWebServiceImpl.java @@ -24,12 +24,13 @@ import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.frontendproject.FrontendProjectManager; -import com.inspur.edp.web.frontendproject.FrontendProjectService; import com.inspur.edp.web.frontendproject.build.FrontendProjectBuild; -import com.inspur.edp.web.frontendproject.deploy.FrontendProjectDeploy; +import com.inspur.edp.web.frontendproject.deploy.FrontendProjectDeployer; import com.inspur.edp.web.frontendproject.entity.ChosenFormList; import com.inspur.edp.web.frontendproject.entity.IdeConfigEntity; import com.inspur.edp.web.frontendproject.generate.FrontendProjectGenerate; +import com.inspur.edp.web.frontendproject.projectinfo.ProjectInfoManager; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; import java.util.Arrays; @@ -43,7 +44,8 @@ public class FrontendProjectWebServiceImpl implements FrontendProjectWebService @Override public boolean isFrontendProject(String projectPath) { - return FrontendProjectService.getInstance().isFrontendProject(projectPath); + ProjectInfoManager projectInfoManager= SpringBeanUtils.getBean(ProjectInfoManager.class); + return projectInfoManager.isFrontendProject(projectPath); } @Override @@ -93,13 +95,13 @@ public class FrontendProjectWebServiceImpl implements FrontendProjectWebService @Override public void deployFrontendProject(String projectPath) { - FrontendProjectDeploy.deployFrontendProject(projectPath); + FrontendProjectDeployer.deployFrontendProject(projectPath); } @Override public void oneKeyDeployFrontendProject(String projectPath) { FrontendProjectManager.getInstance().resolveAndGenerateAndBuildFrontendProject(projectPath); - FrontendProjectDeploy.deployFrontendProject(projectPath); + FrontendProjectDeployer.deployFrontendProject(projectPath); } /** diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/ZeroCodeWebServiceImpl.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/ZeroCodeWebServiceImpl.java index f022bdc17449035cee1e8539acc5e8e9e26bc21a..7baea06927bf2bdc69e2de0689947672b79416e3 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/ZeroCodeWebServiceImpl.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/webservice/ZeroCodeWebServiceImpl.java @@ -16,6 +16,7 @@ package com.inspur.edp.web.frontendproject.webservice; +import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.entity.ResultCode; import com.inspur.edp.web.common.entity.ResultMessage; import com.inspur.edp.web.common.io.FileUtility; @@ -38,22 +39,22 @@ import java.io.IOException; public class ZeroCodeWebServiceImpl implements ZeroCodeWebService { @Override - public ResultMessage beforeNavigateLoadFile(String indexHtmlUrl, String routeUri, String options) { + public ResultMessage beforeNavigateLoadFile(String indexHtmlUrl, String routeUri, String options) { if (StringUtility.isNullOrEmpty(indexHtmlUrl)) { - throw new RuntimeException("请设置默认首页参数"); + throw new WebCustomException("请设置默认首页参数"); } if (StringUtility.isNullOrEmpty(routeUri)) { - throw new RuntimeException("请设置路由参数"); + throw new WebCustomException("请设置路由参数"); } // 调整成为/ 形式 String indexHtmlPath = FileUtility.getPlatformIndependentPath(indexHtmlUrl); String indexHtmlName = "index.html"; if (!StringUtils.endsWith(indexHtmlPath, indexHtmlName)) { - throw new RuntimeException("默认首页参数必须以index.html作为后缀,请修正!"); + throw new WebCustomException("默认首页参数必须以index.html作为后缀,请修正!"); } String projectPath = indexHtmlPath.substring(0, indexHtmlPath.length() - indexHtmlName.length()); if (StringUtility.isNullOrEmpty(projectPath) || projectPath.equals("/")) { - throw new RuntimeException("请设置正确的路径参数,例如:apps/scm/sd/sales/index.html"); + throw new WebCustomException("请设置正确的路径参数,例如:apps/scm/sd/sales/index.html"); } String[] arrProjectPathSplit = projectPath.split("/"); @@ -68,7 +69,7 @@ public class ZeroCodeWebServiceImpl implements ZeroCodeWebService { } ScriptCacheResponse scriptCacheResponse = LocalServerVersionManager.getSingleInstance().checkVersionWithProjectNameAndRelativePath(projectName, projectPath); if (!scriptCacheResponse.isSuccess()) { - throw new RuntimeException(scriptCacheResponse.getErrorMessage()); + throw new WebCustomException(scriptCacheResponse.getErrorMessage()); } // 执行路由跳转 diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeConstants.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeConstants.java index 57684707c6a03d924bd177b025f1d954d76f6a36..f64865daf299e63a496d81cdc0f1d4f2b6fa0a60 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeConstants.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeConstants.java @@ -23,11 +23,13 @@ package com.inspur.edp.web.frontendproject.zerocode; */ public class ZeroCodeConstants { /** - * 零代码配置界面 + * 零代码-代码部署路径--根路径 */ public static String ZeroCodePath = "zerocode"; + /** + * 零代码部署路径 相对于 server 的路径 + */ public static String ZeroCodeRelativePath="web/runtime/projects"; - public static String ZeroCodeRtcRelativePath="web/runtime/projects"; } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitialization.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitializer.java similarity index 90% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitialization.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitializer.java index bca1c7b919d721de260cab2156ad06e21070b876..9247b503b2af96d8cf1f342d149768ed1621cdd4 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitialization.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeParameterInitializer.java @@ -19,7 +19,10 @@ package com.inspur.edp.web.frontendproject.zerocode; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.common.utility.StringUtility; -public class ZeroCodeParameterInitialization { +/*** + * 零代码 入参 参数初始化 + */ +public class ZeroCodeParameterInitializer { public static void initialize(ZeroCodeParameter zeroCodeParameter) { if (zeroCodeParameter == null) { return; @@ -54,7 +57,7 @@ public class ZeroCodeParameterInitialization { if (StringUtility.isNullOrEmpty(zeroCodeParameter.getAbsoluteBasePath())) { // 设置 - String absolutePath = FileUtility.combineOptional(currentServerPath, ZeroCodeConstants.ZeroCodeRtcRelativePath, ZeroCodeConstants.ZeroCodePath, zeroCodeParameter.getOriginalServiceUnitPath(), zeroCodeParameter.getProjectName().toLowerCase()); + String absolutePath = FileUtility.combineOptional(currentServerPath, ZeroCodeConstants.ZeroCodeRelativePath, ZeroCodeConstants.ZeroCodePath, zeroCodeParameter.getOriginalServiceUnitPath(), zeroCodeParameter.getProjectName().toLowerCase()); zeroCodeParameter.setAbsoluteBasePath(absolutePath); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeServiceImpl.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeServiceImpl.java index 24c92bed1ba083ceafeeb0e915cd6f620b717584..26c8fe8c6a2f6ab5d5524bd601b9535561b993e6 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeServiceImpl.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/ZeroCodeServiceImpl.java @@ -18,6 +18,10 @@ package com.inspur.edp.web.frontendproject.zerocode; import com.inspur.edp.web.frontendproject.zerocode.operation.ZeroCodeManager; +/** + * 零代码生成、编译 + * @author noah + */ public class ZeroCodeServiceImpl implements ZeroCodeService { @@ -67,8 +71,11 @@ public class ZeroCodeServiceImpl implements ZeroCodeService { prepareOperate(zeroCodeParameter); ZeroCodeManager.getInstance().saveZeroCodeParameterMetadataIntoJson(zeroCodeParameter); + // 生成源代码 ZeroCodeManager.getInstance().generateSource(zeroCodeParameter); + // 编译源代码 ZeroCodeManager.getInstance().build(zeroCodeParameter); + // 部署源代码 ZeroCodeManager.getInstance().deploy(zeroCodeParameter); } @@ -77,7 +84,7 @@ public class ZeroCodeServiceImpl implements ZeroCodeService { * @param zeroCodeParameter */ private void prepareOperate(ZeroCodeParameter zeroCodeParameter){ - ZeroCodeParameterInitialization.initialize(zeroCodeParameter); + ZeroCodeParameterInitializer.initialize(zeroCodeParameter); // 入参验证 ZeroCodeParameterValidator.validate(zeroCodeParameter); diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/ZeroCodeManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/ZeroCodeManager.java index cb1da1c41ae234240ec2ab86ff693652b3b446b9..dfa3199cfb691b4e8898c4da7efc63f970d644b2 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/ZeroCodeManager.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/ZeroCodeManager.java @@ -18,23 +18,17 @@ package com.inspur.edp.web.frontendproject.zerocode.operation; 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.frontendproject.zerocode.ZeroCodeFormParameter; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +import com.inspur.edp.web.frontendproject.zerocode.operation.deploy.SourceCodeDeployManager; import com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate.SourceCodeManager; import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.WebDevJsonManager; import com.inspur.edp.web.jitengine.JITEngineManager; -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 io.iec.edp.caf.commons.utils.SpringBeanUtils; public class ZeroCodeManager { - ScriptCacheService scriptCacheServiceInstance; private ZeroCodeManager() { - this.scriptCacheServiceInstance = SpringBeanUtils.getBean(ScriptCacheService.class); + } public static ZeroCodeManager getInstance() { @@ -47,143 +41,23 @@ public class ZeroCodeManager { * @param zeroCodeParameter */ public void saveZeroCodeParameterMetadataIntoJson(ZeroCodeParameter zeroCodeParameter) { - // 保存webdevjson文件 WebDevJsonManager.saveWebDevJson(zeroCodeParameter); } public void build(ZeroCodeParameter zeroCodeParameter) { - // 如果存在pc表单 - if (zeroCodeParameter.hasFormParameter(TerminalType.PC)) { - // 执行 npm run build - JITEngineManager.buildFrontendProject(zeroCodeParameter.getAbsoluteBasePath(), ExecuteEnvironment.Runtime, TerminalType.PC); - } - - // 如果存在移动表单 - if (zeroCodeParameter.hasFormParameter(TerminalType.MOBILE)) { - JITEngineManager.buildFrontendProject(zeroCodeParameter.getAbsoluteBasePath(), ExecuteEnvironment.Runtime, TerminalType.MOBILE); - } + TerminalType.rescure((t) -> { + if (zeroCodeParameter.hasFormParameter(t)) { + JITEngineManager.buildFrontendProject(zeroCodeParameter.getAbsoluteBasePath(), ExecuteEnvironment.Runtime, t); + } + }); } public void generateSource(ZeroCodeParameter zeroCodeParameter) { SourceCodeManager.generateSourceCode(zeroCodeParameter); - } public void deploy(ZeroCodeParameter zeroCodeParameter) { - // pc 表单 - if (zeroCodeParameter.hasFormParameter(TerminalType.PC)) { - // 编译后的目标目录 - String distRollupPath = getAppDistRollupPath(zeroCodeParameter.getAbsoluteBasePath()); - - String deployPath = FileUtility.combineOptional(zeroCodeParameter.getServerPath(), "web", zeroCodeParameter.getServiceUnitPath().toLowerCase(), "web"); - FileUtility.copyFolder(distRollupPath, deployPath); - if (FileUtility.exists(deployPath)) { - - //version.json - publishWithSingleFile(deployPath, zeroCodeParameter, "version.json"); - //index.html - publishWithSingleFile(deployPath, zeroCodeParameter, "index.html"); - //polyfills.js - publishWithSingleFile(deployPath, zeroCodeParameter, "polyfills.js"); - //main.js - publishWithSingleFile(deployPath, zeroCodeParameter, "main.js"); - - zeroCodeParameter.getFormParameters().stream().filter(t -> !t.isMobile()).forEach(t -> { - String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); - PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); - publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); - // 为了和设计时传参保持一致 将参数调整为小写形式 - publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); - publishScriptRequest.setFormCode(t.getCode()); - - String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); - String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); - publishScriptRequest.setProjectRelativePath(strRelativePath); - // 无需更新元数据版本 - //publishScriptRequest.setUpdateMetadataVersion(false); - // 由于零代码不存在对应的元数据 因此设置元数据为工程名称 作为一个临时参数值 - publishScriptRequest.setMetaDataId(t.getMetadata().getHeader().getId()); - this.scriptCacheServiceInstance.publishScriptWithSingleFileName(publishScriptRequest, t.getCode().toLowerCase(), null); - }); - - - } - } - // 移动表单 - if (zeroCodeParameter.hasFormParameter(TerminalType.MOBILE)) { - // 编译后的目标目录 - String distRollupPath = getMobileAppDistRollupPath(zeroCodeParameter.getAbsoluteBasePath()); - - String deployPath = FileUtility.combineOptional(zeroCodeParameter.getServerPath(), "web", zeroCodeParameter.getServiceUnitPath().toLowerCase(), "mob"); - FileUtility.copyFolder(distRollupPath, deployPath); - - if (FileUtility.exists(deployPath)) { - - zeroCodeParameter.getFormParameters().stream().filter(ZeroCodeFormParameter::isMobile).forEach((zeroCodeFormParameter)->{ - String metaDataId = zeroCodeParameter.getProjectName().toLowerCase(); - if (zeroCodeFormParameter != null) { - metaDataId = zeroCodeFormParameter.getMetadata().getHeader().getId(); - } - - - String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); - PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); - publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); - // 为了和设计时传参保持一致 将参数调整为小写形式 - publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); - - String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); - String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); - publishScriptRequest.setProjectRelativePath(strRelativePath); - publishScriptRequest.setMetaDataId(metaDataId); - publishScriptRequest.setFormCode(zeroCodeFormParameter.getCode()); - publishScriptRequest.setZeroCodeMobileForm(true); - // 无需更新元数据版本 - //publishScriptRequest.setUpdateMetadataVersion(false); - this.scriptCacheServiceInstance.publishScriptWithDirectory(publishScriptRequest); - }); - - } - } - - } - - private void publishWithSingleFile(String deployPath, ZeroCodeParameter zeroCodeParameter, String fileName) { - String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); - PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); - publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); - // 为了和设计时传参保持一致 将参数调整为小写形式 - publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); - - String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); - String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); - publishScriptRequest.setProjectRelativePath(strRelativePath); - // 无需更新元数据版本 - //publishScriptRequest.setUpdateMetadataVersion(false); - // 由于零代码不存在对应的元数据 因此设置元数据为工程名称 作为一个临时参数值 - publishScriptRequest.setMetaDataId(zeroCodeParameter.getProjectName().toLowerCase()); - this.scriptCacheServiceInstance.publishScriptWithSingleFileName(publishScriptRequest, "", fileName); - } - - - /** - * 获取生成文件代码的路径 - * - * @param absolutePath - * @return - */ - private String getAppDistRollupPath(String absolutePath) { - return FileUtility.getPlatformIndependentPath(FileUtility.combineOptional(absolutePath, "src", "app", "dist-rollup")); - } - - /** - * 获取生成文件代码的路径 - * - * @param absolutePath - * @return - */ - private String getMobileAppDistRollupPath(String absolutePath) { - return FileUtility.getPlatformIndependentPath(FileUtility.combineOptional(absolutePath, "src", "mobileapp", "dist-rollup")); + SourceCodeDeployManager.deploy(zeroCodeParameter); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/AbstractDeployOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/AbstractDeployOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..87be16c24b418ec7b48a0cf84f9e772f33783d0c --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/AbstractDeployOperation.java @@ -0,0 +1,53 @@ +package com.inspur.edp.web.frontendproject.zerocode.operation.deploy; + +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +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 io.iec.edp.caf.commons.utils.SpringBeanUtils; + + abstract class AbstractDeployOperation implements IDeployOperation { + private TerminalType terminalType; + private ScriptCacheService scriptCacheServiceInstance; + + public AbstractDeployOperation(TerminalType terminalType) { + this.terminalType = terminalType; + this.scriptCacheServiceInstance = SpringBeanUtils.getBean(ScriptCacheService.class); + } + + protected ScriptCacheService getScriptCacheServiceInstance() { + return this.scriptCacheServiceInstance; + } + + /** + * 获取生成文件代码的路径 + * + * @param absolutePath + * @return + */ + protected String getAppDistRollupPath(String absolutePath) { + if (TerminalType.isPC(terminalType)) { + return FileUtility.getPlatformIndependentPath(FileUtility.combineOptional(absolutePath, "src", "app", "dist-rollup")); + } + return FileUtility.getPlatformIndependentPath(FileUtility.combineOptional(absolutePath, "src", "mobileapp", "dist-rollup")); + } + + protected void publishWithSingleFile(String deployPath, ZeroCodeParameter zeroCodeParameter, String fileName) { + String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); + PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); + publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); + // 为了和设计时传参保持一致 将参数调整为小写形式 + publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); + + String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); + String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); + publishScriptRequest.setProjectRelativePath(strRelativePath); + // 无需更新元数据版本 + //publishScriptRequest.setUpdateMetadataVersion(false); + // 由于零代码不存在对应的元数据 因此设置元数据为工程名称 作为一个临时参数值 + publishScriptRequest.setMetaDataId(zeroCodeParameter.getProjectName().toLowerCase()); + this.scriptCacheServiceInstance.publishScriptWithSingleFileName(publishScriptRequest, "", fileName); + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/IDeployOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/IDeployOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..06b4daaf8dbfd0ebf375b95b9388f6a1c765cbe0 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/IDeployOperation.java @@ -0,0 +1,10 @@ +package com.inspur.edp.web.frontendproject.zerocode.operation.deploy; + +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; + +/** + * 零代码 脚本部署 + */ + interface IDeployOperation { + void deploy(ZeroCodeParameter zeroCodeParameter); +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/MobileDeployOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/MobileDeployOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..956a93834277cf5b2d035135e9177c5bc15c20c5 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/MobileDeployOperation.java @@ -0,0 +1,57 @@ +package com.inspur.edp.web.frontendproject.zerocode.operation.deploy; + +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.PublishScriptRequest; +import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerPathGenerator; + +/** + * 移动表单 脚本部署 + * @author noah + */ + class MobileDeployOperation extends AbstractDeployOperation implements IDeployOperation { + public MobileDeployOperation() { + super(TerminalType.MOBILE); + } + + @Override + public void deploy(ZeroCodeParameter zeroCodeParameter) { + if (zeroCodeParameter.hasFormParameter(TerminalType.MOBILE)) { + // 编译后的目标目录 + String distRollupPath = getAppDistRollupPath(zeroCodeParameter.getAbsoluteBasePath()); + + String deployPath = FileUtility.combineOptional(zeroCodeParameter.getServerPath(), "web", zeroCodeParameter.getServiceUnitPath().toLowerCase(), "mob"); + FileUtility.copyFolder(distRollupPath, deployPath); + + if (FileUtility.exists(deployPath)) { + String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); + String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); + + zeroCodeParameter.getFormParameters().stream().filter(ZeroCodeFormParameter::isMobile).forEach((zeroCodeFormParameter) -> { + String metaDataId = zeroCodeParameter.getProjectName().toLowerCase(); + if (zeroCodeFormParameter != null) { + metaDataId = zeroCodeFormParameter.getMetadata().getHeader().getId(); + } + + + PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); + publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); + // 为了和设计时传参保持一致 将参数调整为小写形式 + publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); + + + String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); + publishScriptRequest.setProjectRelativePath(strRelativePath); + publishScriptRequest.setMetaDataId(metaDataId); + publishScriptRequest.setFormCode(zeroCodeFormParameter.getCode()); + publishScriptRequest.setZeroCodeMobileForm(true); + + this.getScriptCacheServiceInstance().publishScriptWithDirectory(publishScriptRequest); + }); + + } + } + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/PCDeployOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/PCDeployOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..296390d2508d6644723d1747deaacafcf9f36693 --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/PCDeployOperation.java @@ -0,0 +1,58 @@ +package com.inspur.edp.web.frontendproject.zerocode.operation.deploy; + +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +import com.inspur.edp.web.jitruntimebuild.scriptcache.api.entity.PublishScriptRequest; +import com.inspur.edp.web.jitruntimebuild.scriptcache.localserver.LocalServerPathGenerator; + +/** + * PC 表单 脚本部署 + * + * @author noah + */ + class PCDeployOperation extends AbstractDeployOperation implements IDeployOperation { + public PCDeployOperation() { + super(TerminalType.PC); + } + + @Override + public void deploy(ZeroCodeParameter zeroCodeParameter) { + if (zeroCodeParameter.hasFormParameter(TerminalType.PC)) { + // 编译后的目标目录 + String distRollupPath = getAppDistRollupPath(zeroCodeParameter.getAbsoluteBasePath()); + + String deployPath = FileUtility.combineOptional(zeroCodeParameter.getServerPath(), "web", zeroCodeParameter.getServiceUnitPath().toLowerCase(), "web"); + FileUtility.copyFolder(distRollupPath, deployPath); + if (FileUtility.exists(deployPath)) { + + //version.json + publishWithSingleFile(deployPath, zeroCodeParameter, "version.json"); + //index.html + publishWithSingleFile(deployPath, zeroCodeParameter, "index.html"); + //polyfills.js + publishWithSingleFile(deployPath, zeroCodeParameter, "polyfills.js"); + //main.js + publishWithSingleFile(deployPath, zeroCodeParameter, "main.js"); + + String strLocalServerPath = LocalServerPathGenerator.getNewInstance(false).getLocalServerWebPath(); + String strDeployPathWithProject = FileUtility.combine(deployPath, zeroCodeParameter.getProjectName().toLowerCase()); + zeroCodeParameter.getFormParameters().stream().filter(t -> !t.isMobile()).forEach(t -> { + + PublishScriptRequest publishScriptRequest = new PublishScriptRequest(); + publishScriptRequest.setAbsoluteBaseDirectory(strDeployPathWithProject); + // 为了和设计时传参保持一致 将参数调整为小写形式 + publishScriptRequest.setProjectName(zeroCodeParameter.getProjectName().toLowerCase()); + publishScriptRequest.setFormCode(t.getCode()); + + String strRelativePath = FileUtility.getRelativePath(strLocalServerPath, strDeployPathWithProject, true); + publishScriptRequest.setProjectRelativePath(strRelativePath); + + // 由于零代码不存在对应的元数据 因此设置元数据为工程名称 作为一个临时参数值 + publishScriptRequest.setMetaDataId(t.getMetadata().getHeader().getId()); + this.getScriptCacheServiceInstance().publishScriptWithSingleFileName(publishScriptRequest, t.getCode().toLowerCase(), null); + }); + } + } + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/SourceCodeDeployManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/SourceCodeDeployManager.java new file mode 100644 index 0000000000000000000000000000000000000000..0ce2330a241e2fabcc5e9cd7cd91e8be7a02eeac --- /dev/null +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/deploy/SourceCodeDeployManager.java @@ -0,0 +1,32 @@ +package com.inspur.edp.web.frontendproject.zerocode.operation.deploy; + +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; + +/** + * @Author noah + * @create 2023/7/4 14:29 + */ +public class SourceCodeDeployManager { + public static void deploy(ZeroCodeParameter zeroCodeParameter) { + TerminalType.rescure(t -> { + if (zeroCodeParameter.hasFormParameter(t)) { + IDeployOperation sourceCodeOperation = getSourceCodeOperation(t); + sourceCodeOperation.deploy(zeroCodeParameter); + } + }); + } + + /** + * 依据 terminalType 获取对应的操作实例 + * + * @param terminalType + * @return + */ + private static IDeployOperation getSourceCodeOperation(TerminalType terminalType) { + if (TerminalType.isPC(terminalType)) { + return new PCDeployOperation(); + } + return new MobileDeployOperation(); + } +} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/services/ServicePathGenerator.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/services/ServicePathGenerator.java deleted file mode 100644 index 172c846fd0067b517d6e2fe878422fa5391beb2c..0000000000000000000000000000000000000000 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/services/ServicePathGenerator.java +++ /dev/null @@ -1,29 +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.frontendproject.zerocode.operation.services; - -import com.inspur.edp.web.common.io.FileUtility; - -/** - * @author liyz - * @date 2021/12/14 - */ -public class ServicePathGenerator { - public static String getServicesSourceDir(String webDevPath) { - return FileUtility.getPlatformIndependentPath(FileUtility.combine(webDevPath, "services")); - } -} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/AbstractSourceCodeOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/AbstractSourceCodeOperation.java index f668a132dc54088d89d6b5be78b080da21f07500..49b7983442f2b8adc7a44bfc13ffb1aae3d4f1b3 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/AbstractSourceCodeOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/AbstractSourceCodeOperation.java @@ -16,11 +16,112 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate; +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.frontendproject.zerocode.ZeroCodeParameter; +import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.WebDevJsonManager; +import com.inspur.edp.web.jitengine.JITEngineManager; +import com.inspur.edp.web.jitengine.ProjectCompileContext; + +/** + * 零代码 源代码生成调整 + */ +abstract class AbstractSourceCodeOperation implements ISourceCodeOperation { + + /** + * 定义的表单类型 + */ + private TerminalType terminalType; + + /** + * 对应的表单类型对应 pc、mobile + */ + private String formType; + + /** + * 使用的框架类型,对应 angular、mobile + */ + private String frameworkType; + + + AbstractSourceCodeOperation(TerminalType terminalType, String formType, String frameworkType) { + this.terminalType = terminalType; + this.formType = formType; + this.frameworkType = frameworkType; + } + + /** + * 获取 webdev 路径 + * + * @param zeroCodeParameter + * @return + */ + protected String getWebDevPath(ZeroCodeParameter zeroCodeParameter) { + return WebDevJsonManager.getWebDevPath(zeroCodeParameter, this.terminalType); + } + + /** + * 判断 webdev json 路径是否存在 + * + * @param zeroCodeParameter + * @return + */ + protected boolean checkWebDevPathExist(ZeroCodeParameter zeroCodeParameter) { + return FileUtility.exists(this.getWebDevPath(zeroCodeParameter)); + } + + /** + * 获取生成源代码路径 + * + * @param zeroCodeParameter + * @return + */ + protected String getSourceAppPath(ZeroCodeParameter zeroCodeParameter) { + return SourceCodePathGenerator.generate(zeroCodeParameter, this.terminalType); + } + + + + + /** + * 构造生成上下文参数 + * + * @param zeroCodeParameter + * @param formType + * @param frameworkType + * @return + */ + protected ProjectCompileContext generateCompileContext(ZeroCodeParameter zeroCodeParameter, String formType, String frameworkType) { + String lowerCaseProjectName = this.getLowerCaseProjectName(zeroCodeParameter); + String webDevPath = this.getWebDevPath(zeroCodeParameter); + String sourceAppPath = this.getSourceAppPath(zeroCodeParameter); + ProjectCompileContext projectCompileContext = new ProjectCompileContext(lowerCaseProjectName, + zeroCodeParameter.getRelyNodeModulesPath(), + formType, frameworkType, + webDevPath, + sourceAppPath, null, zeroCodeParameter.getServiceUnitPath(), ExecuteEnvironment.Runtime); + if (terminalType == TerminalType.PC) { + projectCompileContext.setGenerateViewModel(true); + // 是否使用解析模式 + projectCompileContext.setJieXiForm(zeroCodeParameter.isUseJieXiMode()); + } + // 零代码不再保留源代码 每次生成前都进行删除 + projectCompileContext.setDeleteSourceCodeBeforeGenerate(true); + return projectCompileContext; + } + + @Override + public void generate(ZeroCodeParameter zeroCodeParameter) { + if (!this.checkWebDevPathExist(zeroCodeParameter)) { + return; + } + ProjectCompileContext projectCompileContext = this.generateCompileContext(zeroCodeParameter, this.formType, this.frameworkType); + JITEngineManager.compileProject(projectCompileContext); + } -public abstract class AbstractSourceCodeOperation implements ISourceCodeOperation { - String getLowerCaseProjectName(ZeroCodeParameter parameter) { + protected String getLowerCaseProjectName(ZeroCodeParameter parameter) { return parameter.getProjectName().toLowerCase(); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/ISourceCodeOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/ISourceCodeOperation.java index cba233723da043103ca86e58d00f63aa1d0074b2..b074ccc60ec3cc6950a3ad9e93c09717217b31d5 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/ISourceCodeOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/ISourceCodeOperation.java @@ -18,6 +18,14 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; -public interface ISourceCodeOperation { +/** + * 源代码生成操作 + * @author noah + */ + interface ISourceCodeOperation { + /** + * 源代码生成 + * @param zeroCodeParameter + */ void generate(ZeroCodeParameter zeroCodeParameter); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeManager.java index a5b7279fc1305403277fe470f9da7cc9e6c307cc..731fe21be4386f3a8f3314066f351733c31328a1 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeManager.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeManager.java @@ -21,19 +21,25 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; public class SourceCodeManager { public static void generateSourceCode(ZeroCodeParameter zeroCodeParameter) { + TerminalType.rescure(t -> { + if (zeroCodeParameter.hasFormParameter(t)) { + ISourceCodeOperation sourceCodeOperation = getSourceCodeOperation(t); + sourceCodeOperation.generate(zeroCodeParameter); + } + }); + } - if (zeroCodeParameter.hasFormParameter(TerminalType.PC)) { - ISourceCodeOperation sourceCodePCOperation = new SourceCodePCOperation(); - sourceCodePCOperation.generate(zeroCodeParameter); - } - - if (zeroCodeParameter.hasFormParameter(TerminalType.MOBILE)) { - ISourceCodeOperation sourceCodeMobileOperation = new SourceCodeMobileOperation(); - sourceCodeMobileOperation.generate(zeroCodeParameter); + /** + * 依据 terminalType 获取对应的操作实例 + * + * @param terminalType + * @return + */ + private static ISourceCodeOperation getSourceCodeOperation(TerminalType terminalType) { + if (TerminalType.isPC(terminalType)) { + return new SourceCodePCOperation(); } + return new SourceCodeMobileOperation(); } - public static String getSourcePath(ZeroCodeParameter zeroCodeParameter, TerminalType terminalType) { - return SourceCodePathGenerator.generate(zeroCodeParameter, terminalType); - } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeMobileOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeMobileOperation.java index d1b1f6c6c9014765bdfef5e7bd5c69698044eb1f..b16764ba9422c37854a9669efda2ec6c71093581 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeMobileOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodeMobileOperation.java @@ -17,30 +17,14 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate; 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.frontendproject.zerocode.ZeroCodeParameter; -import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.WebDevJsonManager; -import com.inspur.edp.web.jitengine.JITEngineManager; -import com.inspur.edp.web.jitengine.ProjectCompileContext; -public class SourceCodeMobileOperation extends AbstractSourceCodeOperation implements ISourceCodeOperation { - @Override - public void generate(ZeroCodeParameter zeroCodeParameter) { - String webDevPath = WebDevJsonManager.getWebDevPath(zeroCodeParameter, TerminalType.MOBILE); - String sourceAppPath = SourceCodePathGenerator.generate(zeroCodeParameter, TerminalType.MOBILE); - if (!FileUtility.exists(webDevPath)) { - return; - } - String lowerCaseProjectName = getLowerCaseProjectName(zeroCodeParameter); - // 根据webdev json文件 - ProjectCompileContext projectCompileContext = new ProjectCompileContext(lowerCaseProjectName, - zeroCodeParameter.getRelyNodeModulesPath(), - "mobile", "vue", - webDevPath, - sourceAppPath, null, zeroCodeParameter.getServiceUnitPath(), ExecuteEnvironment.Runtime); - - projectCompileContext.setDeleteSourceCodeBeforeGenerate(true); - JITEngineManager.compileProject(projectCompileContext); +/** + * mobile 源代码生成 + * + * @author noah + */ +class SourceCodeMobileOperation extends AbstractSourceCodeOperation implements ISourceCodeOperation { + SourceCodeMobileOperation() { + super(TerminalType.MOBILE, "mobile", "vue"); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePCOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePCOperation.java index 8b7f2df00151944367cd80e008d2712f0fffa01e..5822315e5c2015fa57c6da03cf939fcd11e4a1f7 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePCOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePCOperation.java @@ -17,46 +17,14 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate; 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.frontendproject.zerocode.ZeroCodeParameter; -import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.WebDevJsonManager; -import com.inspur.edp.web.jitengine.JITEngineManager; -import com.inspur.edp.web.jitengine.ProjectCompileContext; -public class SourceCodePCOperation extends AbstractSourceCodeOperation implements ISourceCodeOperation { - @Override - public void generate(ZeroCodeParameter zeroCodeParameter) { - String webDevPath = WebDevJsonManager.getWebDevPath(zeroCodeParameter, TerminalType.PC); - String sourceAppPath = SourceCodePathGenerator.generate(zeroCodeParameter, TerminalType.PC); - if (!FileUtility.exists(webDevPath)) { - return; - } - String lowerCaseProjectName = this.getLowerCaseProjectName(zeroCodeParameter); - // 根据webdev json文件 - ProjectCompileContext projectCompileContext = this.generateCompileContext(lowerCaseProjectName, webDevPath, sourceAppPath, zeroCodeParameter); - JITEngineManager.compileProject(projectCompileContext); - } - - /** - * 构造生成上下文参数 - * @param lowerCaseProjectName 小写形式的工程名称 - * @param webDevPath - * @param sourceAppPath - * @param zeroCodeParameter - * @return - */ - private ProjectCompileContext generateCompileContext(String lowerCaseProjectName, String webDevPath, String sourceAppPath, ZeroCodeParameter zeroCodeParameter) { - ProjectCompileContext projectCompileContext = new ProjectCompileContext(lowerCaseProjectName, - zeroCodeParameter.getRelyNodeModulesPath(), - "pc", "angular", - webDevPath, - sourceAppPath, null, zeroCodeParameter.getServiceUnitPath(), ExecuteEnvironment.Runtime); - projectCompileContext.setGenerateViewModel(true); - // 是否使用解析模式 - projectCompileContext.setJieXiForm(zeroCodeParameter.isUseJieXiMode()); - // 零代码不再保留源代码 每次生成前都进行删除 - projectCompileContext.setDeleteSourceCodeBeforeGenerate(true); - return projectCompileContext; +/** + * 源代码 pc 生成 + * + * @author noah + */ +class SourceCodePCOperation extends AbstractSourceCodeOperation implements ISourceCodeOperation { + SourceCodePCOperation() { + super(TerminalType.PC, "pc", "angular"); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePathGenerator.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePathGenerator.java index 1cd381949b429aa0a4b562fcc52f0dd8b5894955..c7178c27e863db08d9f6de9f4845b860c8283c34 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePathGenerator.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/sourcegenerate/SourceCodePathGenerator.java @@ -18,26 +18,16 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.io.FileUtility; -import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormFormatParameter; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; -public class SourceCodePathGenerator { +class SourceCodePathGenerator { public static String generate(ZeroCodeParameter zeroCodeParameter, TerminalType terminalType) { - if (terminalType == TerminalType.MOBILE) { - return getMobileAppPath(zeroCodeParameter.getAbsoluteBasePath()); - } - return getAppPath(zeroCodeParameter.getAbsoluteBasePath()); - } - public static String generateFormFormatSourcePath( - ZeroCodeParameter zeroCodeParameter, - ZeroCodeFormFormatParameter formFormatParameter, - TerminalType terminalType) { - String basePath = FileUtility.combine(zeroCodeParameter.getAbsoluteBasePath(), "form-format", formFormatParameter.getFormFormatConfigId()); - if (terminalType == TerminalType.MOBILE) { - return getMobileAppPath(basePath); - } - return getAppPath(basePath); + return TerminalType.getCustomExecuteResult(terminalType, () -> { + return getAppPath(zeroCodeParameter.getAbsoluteBasePath()); + }, () -> { + return getMobileAppPath(zeroCodeParameter.getAbsoluteBasePath()); + }); } /** diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/AbstractWebDevJsonOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/AbstractWebDevJsonOperation.java index 53b0d261c74f239298e01b00c437e9dd848b0d37..73e10cc89465ddae95e01caf1482ddbc83664d03 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/AbstractWebDevJsonOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/AbstractWebDevJsonOperation.java @@ -16,9 +16,13 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson; +import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; -import com.inspur.edp.web.frontendproject.zerocode.operation.MetaDataOperationManager; -import com.inspur.edp.web.frontendproject.zerocode.operation.PageFlowMetadataOperation; +import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific.MetaDataOperationManager; +import com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific.PageFlowMetadataOperation; import com.inspur.edp.web.pageflow.metadata.entity.AdaptedPage; import com.inspur.edp.web.pageflow.metadata.entity.AdaptedPageFlowMetadataEntity; import com.inspur.edp.web.pageflow.metadata.entity.Project; @@ -27,23 +31,51 @@ import java.util.ArrayList; import java.util.List; /** + * webdev json 文件生成 基类 + * * @author guozhiqi */ -public abstract class AbstractWebDevJsonOperation implements IWevDevJsonOperation { + abstract class AbstractWebDevJsonOperation implements IWevDevJsonOperation { + + private TerminalType terminalType; + + public AbstractWebDevJsonOperation(TerminalType terminalType) { + this.terminalType = terminalType; + } + + protected TerminalType getTerminalType() { + return this.terminalType; + } + + /** + * 获取对应的 webdev 路径 + * + * @return + */ + private String getWebdevPath(ZeroCodeParameter zeroCodeParameter) { + return WebDevJsonPathGenerator.generate(zeroCodeParameter, this.terminalType); + } /** * 保存json文件到指定目录 + * * @param formParameterList - * @param webDevPath - * @param projectName + * @param zeroCodeParameter */ - protected void saveJson(ListformParameterList, String webDevPath,String projectName) { - AdaptedPageFlowMetadataEntity pageFlowMetadataEntity = new AdaptedPageFlowMetadataEntity(); + protected void saveJson(List formParameterList, ZeroCodeParameter zeroCodeParameter) { + if (ListUtility.isEmpty(formParameterList)) { + WebLogger.Instance.info("零代码 webdev json 文件生成," + this.terminalType.getMetadataType() + "类型表单为空"); + return; + } + Project pageFlowProject = new Project(); - pageFlowProject.setName(projectName); + pageFlowProject.setName(zeroCodeParameter.getProjectName()); + + AdaptedPageFlowMetadataEntity pageFlowMetadataEntity = new AdaptedPageFlowMetadataEntity(); pageFlowMetadataEntity.setProject(pageFlowProject); pageFlowMetadataEntity.setPages(new ArrayList<>()); + String webDevPath = this.getWebdevPath(zeroCodeParameter); formParameterList.forEach(t -> { List pageList = pageFlowMetadataEntity.getPages(); @@ -62,6 +94,6 @@ public abstract class AbstractWebDevJsonOperation implements IWevDevJsonOperatio // 保存页面流元数据 PageFlowMetadataOperation pageFlowMetadataOperation = new PageFlowMetadataOperation(); - pageFlowMetadataOperation.save(webDevPath, pageFlowMetadataEntity, projectName); + pageFlowMetadataOperation.save(webDevPath, pageFlowMetadataEntity, zeroCodeParameter.getProjectName()); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/IWevDevJsonOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/IWevDevJsonOperation.java index cc73c6fc7092619595ce0799a21f6a8961a33f1d..ae7aaf0ad331e22d775f0557fab0d1bfb9abfcbb 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/IWevDevJsonOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/IWevDevJsonOperation.java @@ -21,7 +21,7 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; /** * webdev json文件操作 */ -public interface IWevDevJsonOperation { + interface IWevDevJsonOperation { void save(ZeroCodeParameter zeroCodeParameter); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonManager.java index d199328c6166fbc0979d4d7a8d8686803c7b3970..4cf9422e64c0903b75e7cb03e4b1c07eceee6724 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonManager.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonManager.java @@ -19,18 +19,20 @@ package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; +/** + * 零代码 webdev 目录下 json 文件构造 + * + * @author noah + */ public class WebDevJsonManager { public static void saveWebDevJson(ZeroCodeParameter zeroCodeParameter) { - if (zeroCodeParameter.hasFormParameter(TerminalType.PC)) { - IWevDevJsonOperation pcWebDevJsonOperation = getWebDevJsonOperationInstance(TerminalType.PC); - pcWebDevJsonOperation.save(zeroCodeParameter); - } - - if (zeroCodeParameter.hasFormParameter(TerminalType.MOBILE)) { - IWevDevJsonOperation mobileWebDevJsonOperation = getWebDevJsonOperationInstance(TerminalType.MOBILE); - mobileWebDevJsonOperation.save(zeroCodeParameter); - } + TerminalType.rescure((t) -> { + if (zeroCodeParameter.hasFormParameter(t)) { + IWevDevJsonOperation webDevJsonOperationInstance = getWebDevJsonOperationInstance(t); + webDevJsonOperationInstance.save(zeroCodeParameter); + } + }); } public static String getWebDevPath(ZeroCodeParameter zeroCodeParameter, TerminalType terminalType) { @@ -39,12 +41,9 @@ public class WebDevJsonManager { private static IWevDevJsonOperation getWebDevJsonOperationInstance(TerminalType terminalType) { - IWevDevJsonOperation wevDevJsonOperationInstance; if (terminalType == TerminalType.MOBILE) { - wevDevJsonOperationInstance = new WebDevMobileJsonOperation(); - } else { - wevDevJsonOperationInstance = new WebDevPCJsonOperation(); + return new WebDevMobileJsonOperation(); } - return wevDevJsonOperationInstance; + return new WebDevPCJsonOperation(); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonPathGenerator.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonPathGenerator.java index 2e0dafc10f9017688b84cb3fa4133526cbbb1307..d112a232353d911b61c89ea5ae36d0164269389f 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonPathGenerator.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevJsonPathGenerator.java @@ -23,32 +23,10 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; /** * webdev json文件路径生成 */ -public class WebDevJsonPathGenerator { +class WebDevJsonPathGenerator { public static String generate(ZeroCodeParameter zeroCodeParameter, TerminalType terminalType) { - if (terminalType == TerminalType.MOBILE) { - return getMobileWebDevPath(zeroCodeParameter.getAbsoluteBasePath()); - } - - return getPCWebDevPath(zeroCodeParameter.getAbsoluteBasePath()); - } - - /** - * 获取webdev文件目录 - * - * @param absolutePath - * @return - */ - private static String getPCWebDevPath(String absolutePath) { - return FileUtility.getPlatformIndependentPath(FileUtility.combine(absolutePath, "src", "webdev")); - } - - /** - * 获取移动对应的webdev路径 - * - * @param absolutePath - * @return - */ - private static String getMobileWebDevPath(String absolutePath) { - return FileUtility.getPlatformIndependentPath(FileUtility.combine(absolutePath, "src", "mobiledev")); + return TerminalType.getCustomExecuteResult(terminalType, () -> + FileUtility.getPlatformIndependentPath(FileUtility.combine(zeroCodeParameter.getAbsoluteBasePath(), "src", "webdev")), () -> + FileUtility.getPlatformIndependentPath(FileUtility.combine(zeroCodeParameter.getAbsoluteBasePath(), "src", "mobiledev"))); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevMobileJsonOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevMobileJsonOperation.java index cebf97b27fc7fe7818aadd66293d7c3a07872126..9ef30a7ca99536b2091b106717e44f8b50ae6ef6 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevMobileJsonOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevMobileJsonOperation.java @@ -23,16 +23,20 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; import java.util.List; import java.util.stream.Collectors; -public class WebDevMobileJsonOperation extends AbstractWebDevJsonOperation implements IWevDevJsonOperation { +/** + * 零代码 移动表单 json 文件 + * + * @author noah + */ +class WebDevMobileJsonOperation extends AbstractWebDevJsonOperation implements IWevDevJsonOperation { + WebDevMobileJsonOperation() { + super(TerminalType.MOBILE); + } + @Override public void save(ZeroCodeParameter zeroCodeParameter) { - String webDevPath = WebDevJsonPathGenerator.generate(zeroCodeParameter, TerminalType.MOBILE); - List zeroCodeFormParameterList = zeroCodeParameter.getFormParameters().stream().filter(ZeroCodeFormParameter::isMobile).collect(Collectors.toList()); - // 保存PC 表单元数据 - if (zeroCodeFormParameterList != null && zeroCodeFormParameterList.size() > 0) { - this.saveJson(zeroCodeFormParameterList, webDevPath, zeroCodeParameter.getProjectName()); - } + this.saveJson(zeroCodeFormParameterList, zeroCodeParameter); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJson.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJson.java deleted file mode 100644 index 016a087835435efdd5262108de4724ec8ae94042..0000000000000000000000000000000000000000 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJson.java +++ /dev/null @@ -1,20 +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.frontendproject.zerocode.operation.webdevjson; - -public class WebDevPCJson { -} diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJsonOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJsonOperation.java index 8872cc2246ec99e46d5920491aceb778adf413f6..fc44282d24bb1b62146bfe4e70e3fcae4f639081 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJsonOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/WebDevPCJsonOperation.java @@ -23,17 +23,16 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter; import java.util.List; import java.util.stream.Collectors; -public class WebDevPCJsonOperation extends AbstractWebDevJsonOperation implements IWevDevJsonOperation { +class WebDevPCJsonOperation extends AbstractWebDevJsonOperation implements IWevDevJsonOperation { + + WebDevPCJsonOperation() { + super(TerminalType.PC); + } + @Override public void save(ZeroCodeParameter zeroCodeParameter) { - String webDevPath = WebDevJsonPathGenerator.generate(zeroCodeParameter, TerminalType.PC); - List zeroCodeFormParameterList = zeroCodeParameter.getFormParameters().stream().filter(t -> !t.isMobile()).collect(Collectors.toList()); - // 保存PC 表单元数据 - if (zeroCodeFormParameterList != null && zeroCodeFormParameterList.size() > 0) { - this.saveJson(zeroCodeFormParameterList, webDevPath, zeroCodeParameter.getProjectName()); - } - + this.saveJson(zeroCodeFormParameterList, zeroCodeParameter); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/CommandMetadataOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/CommandMetadataOperation.java similarity index 64% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/CommandMetadataOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/CommandMetadataOperation.java index 4f49b2add4dc02f80bbf20f8d42272831d010a6d..8b74c685c32f5e142e1c4e4e3ac17137a45158f0 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/CommandMetadataOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/CommandMetadataOperation.java @@ -14,26 +14,25 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; -import com.inspur.edp.web.formmetadata.metadataanalysis.CommandServiceAnalysis; import com.inspur.edp.web.formmetadata.metadataanalysis.CommandsAnalysis; -import com.inspur.edp.web.frontendproject.zerocode.operation.services.ServicePathGenerator; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; import java.util.HashMap; +/** + * 命令元数据保存为json + * @author noah + */ class CommandMetadataOperation { public void save(FormDOM json, ZeroCodeFormParameter formParameter, String webDevPath, String formMetadataName) { CommandsAnalysis commandsAnalysis = new CommandsAnalysis(ExecuteEnvironment.Runtime, false); HashMap cmpCacheList = new HashMap<>(); - commandsAnalysis.resolveCommand(CommandsAnalysis.ResolveCommandParameter.init(formParameter.getMetadata(), json), formMetadataName, webDevPath, cmpCacheList, null, null); + CommandsAnalysis.ResolveCommandParameter resolveCommandParameter = CommandsAnalysis.ResolveCommandParameter.init(formParameter.getMetadata(), json); + commandsAnalysis.resolveCommand(resolveCommandParameter, formMetadataName, webDevPath, cmpCacheList); } - public void saveCommandSourceCode(FormDOM json, String webDevPath) { - String servicesSourceDir = ServicePathGenerator.getServicesSourceDir(webDevPath); - CommandServiceAnalysis.resolveCommandService(json, null, servicesSourceDir, webDevPath, ExecuteEnvironment.Runtime, false); - } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/EapiMetadataOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/EapiMetadataOperation.java similarity index 46% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/EapiMetadataOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/EapiMetadataOperation.java index cefd117ce876d12a05fa2b688a71b8b09c94e86a..a35cfacec1803ab8ee6998f580a680a216bb9dba 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/EapiMetadataOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/EapiMetadataOperation.java @@ -14,12 +14,13 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.inspur.edp.lcm.metadata.api.IMetadataContent; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; +import com.inspur.edp.web.formmetadata.metadataanalysis.EapiAnalysis; import com.inspur.edp.web.formmetadata.metadatamanager.EapiMetadataManager; import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; @@ -27,40 +28,14 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormRefMetadataParame import java.util.HashMap; import java.util.List; +import java.util.Optional; class EapiMetadataOperation { public void save(FormDOM json, String formMetadataName, String webDevPath, ZeroCodeFormParameter formParameter) { - if (json == null || json.getModule() == null || json.getModule().getCode() == null - || json.getModule().getSchemas() == null || json.getModule().getSchemas().size() == 0) { - return; - } - StringBuilder eapis = new StringBuilder(); - eapis.append("["); - int index = 0; - // VO-EAPI(vo和eapi是一对一的关系) - List> schemas = json.getModule().getSchemas(); - EapiMetadataManager eapiMetadataManager = new EapiMetadataManager(ExecuteEnvironment.Design, false); - for (HashMap item : schemas) { - if (index > 0) { - eapis.append(","); - } - //获取对应的EapiID 如果可以读取到 - String strEapiID = item.containsKey("eapiId") ? item.get("eapiId").toString() : ""; - // 如果获取到EapiID 那么根据EapiID去读取对应的元数据 - IMetadataContent eapiMetadataContent = null; - - ZeroCodeFormRefMetadataParameter formRefMetadataParameter = formParameter.getSpecialFormRefMetaData(strEapiID, JitMetadataTypeEnum.Eapi); - if (formRefMetadataParameter != null) { - eapiMetadataContent = formRefMetadataParameter.getMetadata().getContent(); - String eapiJson = ""; - eapiJson = eapiMetadataManager.serialize(eapiMetadataContent, PropertyNamingStrategy.UPPER_CAMEL_CASE); - eapis.append(eapiJson); - index += 1; - } - - } - eapis.append("]"); - eapiMetadataManager.saveMetadataFile(webDevPath, - formMetadataName.toLowerCase() + ".eapi.json", eapis.toString()); + EapiAnalysis eapiAnalysis = new EapiAnalysis(ExecuteEnvironment.Runtime, false); + eapiAnalysis.resolveEapi(json, formMetadataName, webDevPath, null, null, (resolveEapiParameter) -> { + ZeroCodeFormRefMetadataParameter formRefMetadataParameter = formParameter.getSpecialFormRefMetaData(resolveEapiParameter.getMetadataManagerParameter().getId(), JitMetadataTypeEnum.Eapi); + return Optional.ofNullable(formRefMetadataParameter.getMetadata()); + }); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormExpressionOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormExpressionOperation.java similarity index 88% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormExpressionOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormExpressionOperation.java index 1232ba724412fcf63018173ba6a1c5421ae37f3b..1f5e40d3a5f41ee5e8ab74b8a339900295a92ce8 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormExpressionOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormExpressionOperation.java @@ -14,9 +14,10 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.inspur.edp.web.common.entity.TerminalType; +import com.inspur.edp.web.common.utility.ListUtility; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; import com.inspur.edp.web.jitengine.expressions.ExpressionFormGenerator; @@ -36,11 +37,11 @@ public class FormExpressionOperation { ///获取表单对应的表达式 ModuleFormExpressions moduleFormExpressions = ExpressionFormGenerator.generate(json, null, null); // 仅仅在包含表达式时才进行添加 - if (moduleFormExpressions != null && moduleFormExpressions.getExpressions() != null && moduleFormExpressions.getExpressions().size() > 0) { + if (moduleFormExpressions != null && ListUtility.isNotEmpty(moduleFormExpressions.getExpressions())) { expressionManifest.getExpressions().add(moduleFormExpressions); } // 写入表单表达式json文件 仅在PC下构造表达式 - if (terminalType == TerminalType.PC) { + if (TerminalType.isPC(terminalType)) { ExpressionManifestManager.writeExpressionJson(expressionManifest, webDevPath, false); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormMetadataContentOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormMetadataContentOperation.java similarity index 90% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormMetadataContentOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormMetadataContentOperation.java index 801fced1bcb503558ee08f1f53f7794b0f64c81c..888cf67f9735e4707cd5be4ccb7956901369542d 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/FormMetadataContentOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/FormMetadataContentOperation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.environment.ExecuteEnvironment; @@ -29,6 +29,8 @@ import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; /** * 表单元数据保存 + * + * @author noah */ class FormMetadataContentOperation { @@ -38,11 +40,11 @@ class FormMetadataContentOperation { * @param webDevPath * @param formParameter */ - public void save(String webDevPath, ZeroCodeFormParameter formParameter, AdaptedPage adaptedPage) { + public void saveFormMetadataInJson(String webDevPath, ZeroCodeFormParameter formParameter, AdaptedPage adaptedPage) { String strFormDom = ((FormMetadataContent) formParameter.getMetadata().getContent()).getContents().toString(); String formMetadataFileName = formParameter.getMetadata().getHeader().getFileName(); // 保存表单元数据到webdev - save(webDevPath, formMetadataFileName, strFormDom); + saveFormMetadataInJson(webDevPath, formMetadataFileName, strFormDom); FormDOM formDOM = SerializeUtility.getInstance().deserialize(strFormDom, FormDOM.class); @@ -80,7 +82,7 @@ class FormMetadataContentOperation { String strFormDom = ((FormMetadataContent) formFormatParameter.getMetadataContent()).getContents().toString(); String formMetadataFileName = formParameter.getMetadata().getHeader().getFileName(); // 保存表单元数据到webdev/form-format/{configId} - save(jsonFilePath, formMetadataFileName, strFormDom); + saveFormMetadataInJson(jsonFilePath, formMetadataFileName, strFormDom); FormDOM formDOM = SerializeUtility.getInstance().deserialize(strFormDom, FormDOM.class); @@ -88,7 +90,7 @@ class FormMetadataContentOperation { adaptedPage.setId(configId); String formCode = formDOM.getModule().getCode(); String pageCode = formCode + "_" + configId.substring(0, 8); - String pageName = formDOM.getModule().getName()+"_" + configId.substring(0, 8); + String pageName = formDOM.getModule().getName() + "_" + configId.substring(0, 8); adaptedPage.setCode(pageCode); adaptedPage.setName(pageName); adaptedPage.setRouteUri(pageCode); @@ -120,8 +122,8 @@ class FormMetadataContentOperation { * @param formMetaDataFileName * @param content */ - private void save(String webDevPath, String formMetaDataFileName, String content) { - FormMetadataManager formMetadataManager = new FormMetadataManager(ExecuteEnvironment.Design, false); + private void saveFormMetadataInJson(String webDevPath, String formMetaDataFileName, String content) { + FormMetadataManager formMetadataManager = new FormMetadataManager(ExecuteEnvironment.Design, null, false); formMetadataManager.saveMetadataFile(webDevPath, formMetaDataFileName.toLowerCase() + ".json", content); } } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/MetaDataOperationManager.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/MetaDataOperationManager.java similarity index 89% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/MetaDataOperationManager.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/MetaDataOperationManager.java index 10045b36083fe71f204d1e5b92d5c301a4f8859d..1c1b5e5b97093d93c37f8ddbfd52b6ecaad240c9 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/MetaDataOperationManager.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/MetaDataOperationManager.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormFormatParameter; -import com.inspur.edp.web.pageflow.metadata.entity.AdaptedPage; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; +import com.inspur.edp.web.pageflow.metadata.entity.AdaptedPage; public class MetaDataOperationManager { public static void save(ZeroCodeFormParameter formParameter, String webDevPath, AdaptedPage adaptedPage) { // 保存表单元数据 FormMetadataContentOperation formMetadataContentOperation = new FormMetadataContentOperation(); - formMetadataContentOperation.save(webDevPath, formParameter,adaptedPage); + formMetadataContentOperation.saveFormMetadataInJson(webDevPath, formParameter,adaptedPage); } diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/PageFlowMetadataOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/PageFlowMetadataOperation.java similarity index 84% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/PageFlowMetadataOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/PageFlowMetadataOperation.java index 5fe2b43c5aebcbcd7430b2c9fcd97a7d7987c085..4c1929685af9d82b9a7b766282157b11c068e6be 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/PageFlowMetadataOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/PageFlowMetadataOperation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; import com.inspur.edp.web.common.JITEngineConstants; import com.inspur.edp.web.common.io.FileUtility; @@ -22,6 +22,12 @@ import com.inspur.edp.web.common.serialize.SerializeUtility; import com.inspur.edp.web.pageflow.metadata.entity.AdaptedPageFlowMetadataEntity; public class PageFlowMetadataOperation { + /** + * 保存页面流元数据 json + * @param webDevPath + * @param pageFlowMetadataEntity + * @param formMetadataName + */ public void save(String webDevPath, AdaptedPageFlowMetadataEntity pageFlowMetadataEntity, String formMetadataName) { String pageFlowContent = SerializeUtility.getInstance().serialize(pageFlowMetadataEntity); FileUtility.writeFile(webDevPath, formMetadataName.toLowerCase() + JITEngineConstants.ProjectRouteFileExtension, pageFlowContent); diff --git a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/StateMachineMetadataOperation.java b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/StateMachineMetadataOperation.java similarity index 40% rename from web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/StateMachineMetadataOperation.java rename to web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/StateMachineMetadataOperation.java index dcffa3cbd1f8d14f2cf9e6add678561e954e73c8..556c63d0216bc458546413c642bfdbb1b5b8771c 100644 --- a/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/StateMachineMetadataOperation.java +++ b/web-frontendproject/src/main/java/com/inspur/edp/web/frontendproject/zerocode/operation/webdevjson/specific/StateMachineMetadataOperation.java @@ -14,52 +14,28 @@ * limitations under the License. */ -package com.inspur.edp.web.frontendproject.zerocode.operation; +package com.inspur.edp.web.frontendproject.zerocode.operation.webdevjson.specific; -import com.inspur.edp.lcm.metadata.api.IMetadataContent; import com.inspur.edp.web.common.environment.ExecuteEnvironment; import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM; -import com.inspur.edp.web.formmetadata.metadatamanager.StateMachineMetadataManager; +import com.inspur.edp.web.formmetadata.metadataanalysis.StateMachineAnalysis; import com.inspur.edp.web.jitruntimebuild.api.entity.JitMetadataTypeEnum; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormParameter; import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormRefMetadataParameter; -import java.util.HashMap; - public class StateMachineMetadataOperation { /** * 保存 * * @param formParameter */ - public void save(FormDOM json, ZeroCodeFormParameter formParameter,String wevDevPath,String formMetadataFileName) { - if (json.getModule() != null && json.getModule().getStateMachines() != null && json.getModule().getStateMachines().size() > 0) { - StateMachineMetadataManager smManager = new StateMachineMetadataManager(ExecuteEnvironment.Design, false); - StringBuilder stateMachines = new StringBuilder(); - stateMachines.append("{"); - int index = 0; - for (HashMap o : json.getModule().getStateMachines()) { - if (index > 0) { - stateMachines.append(","); - } - String uri = o.get("uri").toString(); - - ZeroCodeFormRefMetadataParameter formRefMetadataParameter = formParameter.getSpecialFormRefMetaData(uri, JitMetadataTypeEnum.StateMachine); - if (formRefMetadataParameter != null) { - IMetadataContent obj = formRefMetadataParameter.getMetadata().getContent(); - String sm_json = smManager.serialize(obj); - String idStr = o.get("id").toString(); - stateMachines.append("\"").append(idStr).append("\":"); - stateMachines.append(sm_json); - index += 1; - } - - } - stateMachines.append("}"); - - // Save StateMachine - smManager.saveMetadataFile(wevDevPath, String.format("%1$s.sm.json", formMetadataFileName.toLowerCase()), stateMachines.toString()); - } + public void save(FormDOM json, ZeroCodeFormParameter formParameter, String wevDevPath, + String formMetadataFileName) { + StateMachineAnalysis stateMachineAnalysis=new StateMachineAnalysis(ExecuteEnvironment.Runtime,false); + stateMachineAnalysis.resolveStateMachine(json, formMetadataFileName, wevDevPath, null, (resolveStateMachineParameter) -> { + ZeroCodeFormRefMetadataParameter formRefMetadataParameter = formParameter.getSpecialFormRefMetaData(resolveStateMachineParameter.getMetadataManagerParameter().getId(), JitMetadataTypeEnum.StateMachine); + return formRefMetadataParameter.getMetadata(); + }); } diff --git a/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/common/FileUtil.java b/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/common/FileUtil.java index 05fe1dc63d49c5ccaef382180d5c7148ba1b0a74..c5152c6f8fe6b7bde19af3ea6165648a09d36ec8 100644 --- a/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/common/FileUtil.java +++ b/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/common/FileUtil.java @@ -17,7 +17,6 @@ package com.inspur.edp.ide.config.webapi.common; import com.inspur.edp.web.common.logger.WebLogger; -import lombok.extern.slf4j.Slf4j; import java.io.File; import java.io.FileInputStream; diff --git a/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/service/WebIDEService.java b/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/service/WebIDEService.java index dbb8710eba7e9d48cfe09940166fe17649c19dfa..7106933f1dcc37ff07c7c738288613ea9f55fd4c 100644 --- a/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/service/WebIDEService.java +++ b/web-ide-webapi/src/main/java/com/inspur/edp/ide/config/webapi/service/WebIDEService.java @@ -21,10 +21,10 @@ import com.inspur.edp.ide.config.webapi.common.FileUtil; import com.inspur.edp.ide.config.webapi.entity.PanelDescription; import com.inspur.edp.ide.config.webapi.entity.PanelStyle; import com.inspur.edp.ide.config.webapi.entity.PluginConfig; +import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.utility.StringUtility; import io.iec.edp.caf.common.JSONSerializer; import io.iec.edp.caf.common.environment.EnvironmentUtil; -import lombok.extern.slf4j.Slf4j; import org.springframework.boot.configurationprocessor.json.JSONObject; import java.io.File; @@ -32,9 +32,9 @@ import java.nio.file.Paths; /** * ide service - * @author noah + * + * @author noah */ -@Slf4j public class WebIDEService { private static WebIDEService instance; private static PluginConfig pluginConfig; @@ -120,7 +120,7 @@ public class WebIDEService { } return result; } catch (RuntimeException e) { - log.error(e.getMessage(), e); + WebLogger.Instance.error(e); return null; } } @@ -128,6 +128,7 @@ public class WebIDEService { /** * 修正panelDescription的url路径 * n版url不带index.html,server会自动跳转,j版server不行。 + * * @param panelDescription * @param dir */ diff --git a/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageInstallService.java b/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageInstallService.java new file mode 100644 index 0000000000000000000000000000000000000000..58c265d4ec5b0b382f4cc655038c684246e6c801 --- /dev/null +++ b/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageInstallService.java @@ -0,0 +1,16 @@ +package com.inspur.edp.web.npmpackage.api.service; + +import com.inspur.edp.web.npmpackage.api.entity.NpmInstallParameter; +import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; + +/** + * npm 包安装服务 + * + * @author noah + * 2023/7/8 15:12 + */ +public interface NpmPackageInstallService { + NpmPackageResponse install(NpmInstallParameter npmInstallParameter); + + NpmPackageResponse installCheck(NpmInstallParameter npmInstallParameter); +} diff --git a/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageService.java b/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageService.java new file mode 100644 index 0000000000000000000000000000000000000000..a7055964c46e63793605313bb8a1a93358f3ee7f --- /dev/null +++ b/web-npmpackage-api/src/main/java/com/inspur/edp/web/npmpackage/api/service/NpmPackageService.java @@ -0,0 +1,26 @@ +package com.inspur.edp.web.npmpackage.api.service; + +import com.inspur.edp.web.npmpackage.api.entity.NpmPackageCheckUpdateOptions; +import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; + +/** + * npm 包service + * + * @author noah + * 2023/7/8 15:11 + */ +public interface NpmPackageService { + /** + * 检查是否发生更新 + * + * @param checkUpdateOptions + * @return + */ + NpmPackageResponse checkUpdate(NpmPackageCheckUpdateOptions checkUpdateOptions); + + /** + * 检查是否发生更新 + * @return + */ + NpmPackageResponse checkUpdate(); +} diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageConfiguration.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageConfiguration.java index 98a1dd1526ff2120774bcf90a001aaf440351eee..5c8f785893079faa65d1728cd0e5ca1292e1e842 100644 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageConfiguration.java +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageConfiguration.java @@ -16,8 +16,10 @@ package com.inspur.edp.web.npmpackage.core.config; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageService; import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageWebService; -import com.inspur.edp.web.npmpackage.core.webservice.NpmPacakgeWebServiceImpl; +import com.inspur.edp.web.npmpackage.core.service.NpmPackageServiceImpl; +import com.inspur.edp.web.npmpackage.core.webservice.NpmPackageWebServiceImpl; import io.iec.edp.caf.rest.RESTEndpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -28,12 +30,17 @@ import org.springframework.context.annotation.Configuration; @Configuration public class NpmPackageConfiguration { @Bean - public NpmPackageWebService npmPackageWebService(){ - return new NpmPacakgeWebServiceImpl(); + public NpmPackageWebService npmPackageWebService() { + return new NpmPackageWebServiceImpl(); } @Bean - public RESTEndpoint NpmPackageWebServiceEndpoint(){ - return new RESTEndpoint("/dev/main/web/v1.0/npmpackage", new NpmPacakgeWebServiceImpl()); + public NpmPackageService npmPackageService() { + return new NpmPackageServiceImpl(); + } + + @Bean + public RESTEndpoint NpmPackageWebServiceEndpoint() { + return new RESTEndpoint("/dev/main/web/v1.0/npmpackage", new NpmPackageWebServiceImpl()); } } diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageInstallConfiguration.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageInstallConfiguration.java index 24d46df49ff2d1195f6b8abc571d6a042105cf28..ea359d710f51517dc89bc105bcec3636bb8f808f 100644 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageInstallConfiguration.java +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/config/NpmPackageInstallConfiguration.java @@ -16,7 +16,9 @@ package com.inspur.edp.web.npmpackage.core.config; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageInstallService; import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageInstallWebService; +import com.inspur.edp.web.npmpackage.core.service.NpmPackageInstallServiceImpl; import com.inspur.edp.web.npmpackage.core.webservice.NpmPackageInstallWebServiceImpl; import io.iec.edp.caf.rest.RESTEndpoint; import org.springframework.context.annotation.Bean; @@ -25,12 +27,17 @@ import org.springframework.context.annotation.Configuration; @Configuration public class NpmPackageInstallConfiguration { @Bean - public NpmPackageInstallWebService npmPackageInstallWebService(){ + public NpmPackageInstallWebService npmPackageInstallWebService() { return new NpmPackageInstallWebServiceImpl(); } @Bean - public RESTEndpoint NpmPackageInstallWebServiceEndpoint(){ + public NpmPackageInstallService npmPackageInstallService() { + return new NpmPackageInstallServiceImpl(); + } + + @Bean + public RESTEndpoint NpmPackageInstallWebServiceEndpoint() { return new RESTEndpoint("/dev/main/web/v1.0/npmpackageinstall", new NpmPackageInstallWebServiceImpl()); } } \ No newline at end of file diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallService.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallServiceImpl.java similarity index 78% rename from web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallService.java rename to web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallServiceImpl.java index 17b0de70ecd681d0c1dabf00cfa02ff07ead3d0a..dbf505ab9b2c0f5427e5a382f0baee68311aa8fb 100644 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallService.java +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageInstallServiceImpl.java @@ -18,6 +18,7 @@ package com.inspur.edp.web.npmpackage.core.service; import com.inspur.edp.web.npmpackage.api.entity.NpmInstallParameter; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageInstallService; import com.inspur.edp.web.npmpackage.core.npminstall.NpmInstallManager; /** @@ -25,18 +26,18 @@ import com.inspur.edp.web.npmpackage.core.npminstall.NpmInstallManager; * * @author guozhiqi */ -public class NpmPackageInstallService { +public class NpmPackageInstallServiceImpl implements NpmPackageInstallService { /** * 对外公共 npm包install * * @param npmInstallParameter * @return */ - public static NpmPackageResponse install(NpmInstallParameter npmInstallParameter) { + public NpmPackageResponse install(NpmInstallParameter npmInstallParameter) { return NpmInstallManager.npmInstall(npmInstallParameter, true); } - public static NpmPackageResponse installCheck(NpmInstallParameter npmInstallParameter) { + public NpmPackageResponse installCheck(NpmInstallParameter npmInstallParameter) { return NpmInstallManager.npmInstallCheck(npmInstallParameter); } } diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageService.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageService.java deleted file mode 100644 index 60333335e5e1b293890da704fe7286880a7a0772..0000000000000000000000000000000000000000 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageService.java +++ /dev/null @@ -1,74 +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.npmpackage.core.service; - -import com.inspur.edp.web.common.io.FileUtility; -import com.inspur.edp.web.common.logger.WebLogger; -import com.inspur.edp.web.npmpackage.api.entity.NpmInstallParameter; -import com.inspur.edp.web.npmpackage.api.entity.NpmPackageCheckUpdateOptions; -import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; -import com.inspur.edp.web.npmpackage.core.npminstall.NodeModulesPathGenerator; -import com.inspur.edp.web.npmpackage.core.npmpackagecheck.NpmPackageCheck; - -/** - * npm 包 manager service - * - * @author guozhiqi - */ -public class NpmPackageService { - /** - * 执行npm 版本检测 - * - * @param checkUpdateOptions - * @return - */ - public static NpmPackageResponse checkUpdate(NpmPackageCheckUpdateOptions checkUpdateOptions) { - - // 升级工具中不进行检测 - if (checkUpdateOptions.isUpgradeTool()) { - NpmPackageResponse npmPackageResponse = new NpmPackageResponse(); - npmPackageResponse.setSuccess(true); - npmPackageResponse.setErrorMessage("升级工具执行,npm包版本不进行检测"); - return npmPackageResponse; - } - - String currentServerPath = FileUtility.getCurrentWorkPath(checkUpdateOptions.isUpgradeTool()); - - - // 判断是否存在node_modules 避免被误删除的情况 - NpmInstallParameter npmInstallParameter = new NpmInstallParameter(); - npmInstallParameter.setExecuteEnvironment(checkUpdateOptions.getExecuteEnvironment()); - npmInstallParameter.setMobile(checkUpdateOptions.isMobile()); - String nodeModulesPath = NodeModulesPathGenerator.generatePackageJsonPath(npmInstallParameter, currentServerPath); - nodeModulesPath = FileUtility.combine(nodeModulesPath, "node_modules"); - if (!FileUtility.exists(nodeModulesPath) || FileUtility.isEmptyFolder(nodeModulesPath)) { - String tip = "未配置编译依赖node_modules,请在 Npm包管理进行在线安装。node_modules路径为:" + nodeModulesPath; - WebLogger.Instance.info(tip, NpmPackageService.class.getName()); - return NpmPackageResponse.createError(tip); - } - - // 是否需要update标识 - boolean npmCheckFlag = NpmPackageCheck.check(checkUpdateOptions); - - - if (npmCheckFlag) { - return NpmPackageResponse.create(); - } else { - return NpmPackageResponse.createError("npm包版本存在更新,为保证最终脚本运行正确,需先进行更新。\r\n请在选项->设置->Npm包管理进行更新!"); - } - } -} diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImpl.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageServiceImpl.java similarity index 54% rename from web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImpl.java rename to web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageServiceImpl.java index 404f3de45f218bb1c54a516b069fdb17d176a49d..f5cf9d918b162bda17b2c8d04b9e6101de95f587 100644 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPacakgeWebServiceImpl.java +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/service/NpmPackageServiceImpl.java @@ -14,49 +14,32 @@ * limitations under the License. */ -package com.inspur.edp.web.npmpackage.core.webservice; +package com.inspur.edp.web.npmpackage.core.service; import com.inspur.edp.web.common.environment.ExecuteEnvironment; +import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.logger.WebLogger; +import com.inspur.edp.web.npmpackage.api.entity.NpmInstallParameter; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageCheckUpdateOptions; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; import com.inspur.edp.web.npmpackage.api.entity.settings.NpmRepository; import com.inspur.edp.web.npmpackage.api.entity.settings.NpmSettings; import com.inspur.edp.web.npmpackage.api.entity.settings.NpmUpdatePolicy; -import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageWebService; -import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingEncryptService; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageService; +import com.inspur.edp.web.npmpackage.core.npminstall.NodeModulesPathGenerator; +import com.inspur.edp.web.npmpackage.core.npmpackagecheck.NpmPackageCheck; import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingManager; -import com.inspur.edp.web.npmpackage.core.service.NpmPackageService; /** - * npm 包webservice + * npm 包 manager service * - * @author noah + * @author guozhiqi */ -public class NpmPacakgeWebServiceImpl implements NpmPackageWebService { - @Override - public NpmSettings getNpmSetting() { - NpmSettings npmSettings = NpmSettingManager.getNpmSetting(false); - - npmSettings = NpmSettingEncryptService.getInstance().encrypt(npmSettings); - - return npmSettings; - } - - +public class NpmPackageServiceImpl implements NpmPackageService { /** - * 保存npm配置信息 - * - * @param npmSettings npm配置信息 + * 检测是否发生npm包变化 * @return */ - @Override - public NpmPackageResponse saveNpmSetting(NpmSettings npmSettings) { - npmSettings=NpmSettingEncryptService.getInstance().deEncrypt(npmSettings); - - return NpmSettingManager.saveNpmSetting(npmSettings); - } - - @Override public NpmPackageResponse checkUpdate() { NpmSettings npmSettings = NpmSettingManager.getNpmSetting(false); // 如果为离线模式 @@ -95,12 +78,51 @@ public class NpmPacakgeWebServiceImpl implements NpmPackageWebService { NpmPackageCheckUpdateOptions checkUpdateOptions = new NpmPackageCheckUpdateOptions(); checkUpdateOptions.setExecuteEnvironment(ExecuteEnvironment.Design); checkUpdateOptions.setUpgradeTool(false); - return NpmPackageService.checkUpdate(checkUpdateOptions); + return this.checkUpdate(checkUpdateOptions); } -// 如果为编译前 那么自动执行无需提示 + // 如果为编译前 那么自动执行无需提示 return NpmPackageResponse.create(); - } + /** + * 执行npm 版本检测 + * + * @param checkUpdateOptions + * @return + */ + public NpmPackageResponse checkUpdate(NpmPackageCheckUpdateOptions checkUpdateOptions) { + + // 升级工具中不进行检测 + if (checkUpdateOptions.isUpgradeTool()) { + NpmPackageResponse npmPackageResponse = new NpmPackageResponse(); + npmPackageResponse.setSuccess(true); + npmPackageResponse.setErrorMessage("升级工具执行,npm包版本不进行检测"); + return npmPackageResponse; + } + + String currentServerPath = FileUtility.getCurrentWorkPath(checkUpdateOptions.isUpgradeTool()); + + // 判断是否存在node_modules 避免被误删除的情况 + NpmInstallParameter npmInstallParameter = new NpmInstallParameter(); + npmInstallParameter.setExecuteEnvironment(checkUpdateOptions.getExecuteEnvironment()); + npmInstallParameter.setMobile(checkUpdateOptions.isMobile()); + String nodeModulesPath = NodeModulesPathGenerator.generatePackageJsonPath(npmInstallParameter, currentServerPath); + nodeModulesPath = FileUtility.combine(nodeModulesPath, "node_modules"); + if (!FileUtility.exists(nodeModulesPath) || FileUtility.isEmptyFolder(nodeModulesPath)) { + String tip = "未配置编译依赖node_modules,请在 Npm包管理进行在线安装。node_modules路径为:" + nodeModulesPath; + WebLogger.Instance.info(tip, NpmPackageServiceImpl.class.getName()); + return NpmPackageResponse.createError(tip); + } + + // 是否需要update标识 + boolean npmCheckFlag = NpmPackageCheck.check(checkUpdateOptions); + + + if (npmCheckFlag) { + return NpmPackageResponse.create(); + } else { + return NpmPackageResponse.createError("npm包版本存在更新,为保证最终脚本运行正确,需先进行更新。\r\n请在选项->设置->Npm包管理进行更新!"); + } + } } diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageInstallWebServiceImpl.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageInstallWebServiceImpl.java index 697377a871befbedac25809a77f7de33541f1298..1e105450629e7ece502f1eba677dd33234f6ba97 100644 --- a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageInstallWebServiceImpl.java +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageInstallWebServiceImpl.java @@ -21,11 +21,13 @@ import com.inspur.edp.web.npmpackage.api.entity.NpmInstallParameter; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponseLevel; import com.inspur.edp.web.npmpackage.api.entity.settings.NpmSettings; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageInstallService; import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageInstallWebService; import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingConvertor; import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingEncryptService; import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingManager; -import com.inspur.edp.web.npmpackage.core.service.NpmPackageInstallService; +import com.inspur.edp.web.npmpackage.core.service.NpmPackageInstallServiceImpl; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; /** * npm 包安装webservice @@ -33,6 +35,7 @@ import com.inspur.edp.web.npmpackage.core.service.NpmPackageInstallService; * @author guozhiqi */ public class NpmPackageInstallWebServiceImpl implements NpmPackageInstallWebService { + @Override public NpmPackageResponse install(NpmSettings npmSettings) { if (npmSettings == null) { @@ -45,7 +48,8 @@ public class NpmPackageInstallWebServiceImpl implements NpmPackageInstallWebServ NpmInstallParameter npmInstallParameter = NpmSettingConvertor.convertFromNpmSetting(npmSettings); // 执行npm 安装 - NpmPackageResponse npmPackageResponse = NpmPackageInstallService.install(npmInstallParameter); + NpmPackageInstallService npmPackageInstallService = SpringBeanUtils.getBean(NpmPackageInstallService.class); + NpmPackageResponse npmPackageResponse = npmPackageInstallService.install(npmInstallParameter); try { // 保存最后的更新时间 @@ -86,12 +90,13 @@ public class NpmPackageInstallWebServiceImpl implements NpmPackageInstallWebServ */ @Override public NpmPackageResponse installCheck(NpmSettings installParameter) { - installParameter=NpmSettingEncryptService.getInstance().deEncrypt(installParameter); + installParameter = NpmSettingEncryptService.getInstance().deEncrypt(installParameter); // 获取默认的npm 仓库配置 NpmSettings npmSettings = NpmSettingManager.getNpmSetting(false); NpmInstallParameter npmInstallParameter = NpmSettingConvertor.convertFromNpmSetting(npmSettings); // 使用默认配置进行在线install - return NpmPackageInstallService.installCheck(npmInstallParameter); + NpmPackageInstallService npmPackageInstallService = SpringBeanUtils.getBean(NpmPackageInstallService.class); + return npmPackageInstallService.installCheck(npmInstallParameter); } } diff --git a/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageWebServiceImpl.java b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageWebServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a1513fe57ebb495d3275412fd87d5ecd30685e3d --- /dev/null +++ b/web-npmpackage-core/src/main/java/com/inspur/edp/web/npmpackage/core/webservice/NpmPackageWebServiceImpl.java @@ -0,0 +1,68 @@ +/* + * 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.npmpackage.core.webservice; + +import com.inspur.edp.web.common.environment.ExecuteEnvironment; +import com.inspur.edp.web.npmpackage.api.entity.NpmPackageCheckUpdateOptions; +import com.inspur.edp.web.npmpackage.api.entity.NpmPackageResponse; +import com.inspur.edp.web.npmpackage.api.entity.settings.NpmRepository; +import com.inspur.edp.web.npmpackage.api.entity.settings.NpmSettings; +import com.inspur.edp.web.npmpackage.api.entity.settings.NpmUpdatePolicy; +import com.inspur.edp.web.npmpackage.api.service.NpmPackageService; +import com.inspur.edp.web.npmpackage.api.webservice.NpmPackageWebService; +import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingEncryptService; +import com.inspur.edp.web.npmpackage.core.npmsetting.NpmSettingManager; +import com.inspur.edp.web.npmpackage.core.service.NpmPackageServiceImpl; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; + +/** + * npm 包webservice + * + * @author noah + */ +public class NpmPackageWebServiceImpl implements NpmPackageWebService { + @Override + public NpmSettings getNpmSetting() { + NpmSettings npmSettings = NpmSettingManager.getNpmSetting(false); + + npmSettings = NpmSettingEncryptService.getInstance().encrypt(npmSettings); + + return npmSettings; + } + + + /** + * 保存npm配置信息 + * + * @param npmSettings npm配置信息 + * @return + */ + @Override + public NpmPackageResponse saveNpmSetting(NpmSettings npmSettings) { + npmSettings = NpmSettingEncryptService.getInstance().deEncrypt(npmSettings); + + return NpmSettingManager.saveNpmSetting(npmSettings); + } + + @Override + public NpmPackageResponse checkUpdate() { + NpmPackageService npmPackageService = SpringBeanUtils.getBean(NpmPackageService.class); + return npmPackageService.checkUpdate(); + } + + +} diff --git a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/listener/PageFlowMetadataEventListener.java b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/listener/PageFlowMetadataEventListener.java index b49faeb6a8f4c5c84e22472b9974267e66d63e47..afd31f96b768b27353dc3794c2b117d229e3bf3d 100644 --- a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/listener/PageFlowMetadataEventListener.java +++ b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/listener/PageFlowMetadataEventListener.java @@ -72,8 +72,7 @@ public class PageFlowMetadataEventListener implements MetadataEventListener, Met return; } - if (TerminalType.PC.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType()) - || TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { + if (TerminalType.isPCOrMobile(metadataEventArgs.getMetadata().getHeader().getType())) { PageFlowMetadataUpdateService.getInstance().updatePageFlowMetadata(metadataEventArgs); } } diff --git a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/manager/PageFlowMetadataEntityManager.java b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/manager/PageFlowMetadataEntityManager.java index 3fa0bde2ecbb56a6aedd56c0c1a667dffb8b86c5..d68a80f78411bbafea94d0eb5846102e0460de6d 100644 --- a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/manager/PageFlowMetadataEntityManager.java +++ b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/manager/PageFlowMetadataEntityManager.java @@ -20,7 +20,7 @@ import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.spi.MetadataContentManager; import com.inspur.edp.web.common.utility.StringUtility; import com.inspur.edp.web.pageflow.metadata.entity.PageFlowMetadataEntity; -import com.inspur.edp.web.pageflow.metadata.service.RouteMetataService; +import com.inspur.edp.web.pageflow.metadata.service.RouteMetadataService; public class PageFlowMetadataEntityManager implements MetadataContentManager { @Override @@ -44,7 +44,7 @@ public class PageFlowMetadataEntityManager implements MetadataContentManager { * @return */ public static String getCurrentPageRouteUri(PageFlowMetadataEntity pageFlowMetadataEntity, String pageId) { - return RouteMetataService.getcurrentpagerouteuri(pageFlowMetadataEntity, pageId); + return RouteMetadataService.getCurrentPageRouteUri(pageFlowMetadataEntity, pageId); } } diff --git a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/PageFlowMetadataUpdateService.java b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/PageFlowMetadataUpdateService.java index 42f2023296ed2e4e8fdae70637ec3698470ba6a4..314b7a16564e57c4cd228c0e908839f06a518566 100644 --- a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/PageFlowMetadataUpdateService.java +++ b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/PageFlowMetadataUpdateService.java @@ -27,6 +27,7 @@ import com.inspur.edp.web.appconfig.api.entity.GspAppConfig; import com.inspur.edp.web.appconfig.core.service.GspAppConfigService; import com.inspur.edp.web.common.entity.TerminalType; import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.common.metadata.MetadataUtility; import com.inspur.edp.web.common.utility.StringUtility; @@ -34,7 +35,6 @@ import com.inspur.edp.web.pageflow.metadata.entity.Page; import com.inspur.edp.web.pageflow.metadata.entity.PageFlowMetadataEntity; import com.inspur.edp.web.pageflow.metadata.entity.Project; import io.iec.edp.caf.commons.utils.SpringBeanUtils; -import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Arrays; @@ -45,7 +45,6 @@ import java.util.List; * 用于当元数据扩展事件被触发时对页面流元数据进行更新。 * 从Listener里拆出 */ -@Slf4j public class PageFlowMetadataUpdateService { private static PageFlowMetadataUpdateService instance; @@ -95,7 +94,7 @@ public class PageFlowMetadataUpdateService { * @param metadataEventArgs */ public void syncPageFlowMetadataAfterFormDeleted(MetadataEventArgs metadataEventArgs) { - log.debug("Debug_PageFlowMetadataDeleteEventListener_SyncPageFlowMetadata: Sync PageFlow Metadata When Having Deleted Form metadatas."); + WebLogger.Instance.info("Debug_PageFlowMetadataDeleteEventListener_SyncPageFlowMetadata: Sync PageFlow Metadata When Having Deleted Form metadatas."); // 监听表单元数据删除。当删除表单元数据,同步页面流元数据 if (!TerminalType.PC.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType()) && !TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { return; @@ -110,22 +109,22 @@ public class PageFlowMetadataUpdateService { String projectPath = MetadataUtility.getInstance().getMetadataProjectPath(metadataEventArgs.getMetadata().getRelativePath()); if (TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { - pageFlowMetadataEntity = RouteMetataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfigInfo.getMobilePageFlowMetadataID(), appConfigInfo.getMobilePageFlowMetadataFileName(), projectPath); + pageFlowMetadataEntity = RouteMetadataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfigInfo.getMobilePageFlowMetadataID(), appConfigInfo.getMobilePageFlowMetadataFileName(), projectPath); if (pageFlowMetadataEntity == null) { - log.debug(String.format("Current Project %1$s's PageFlowMetadata %2$s Content is Null.", metadataEventArgs.getMetadata().getRelativePath(), appConfigInfo.getPageFlowMetadataFileName())); + WebLogger.Instance.info(String.format("Current Project %1$s's PageFlowMetadata %2$s Content is Null.", metadataEventArgs.getMetadata().getRelativePath(), appConfigInfo.getPageFlowMetadataFileName())); return; } } else { - pageFlowMetadataEntity = RouteMetataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfigInfo.getPageFlowMetadataID(), appConfigInfo.getPageFlowMetadataFileName(), projectPath); + pageFlowMetadataEntity = RouteMetadataService.getRouteMetadataContentWithMetadataIdAndProjectPath(appConfigInfo.getPageFlowMetadataID(), appConfigInfo.getPageFlowMetadataFileName(), projectPath); if (pageFlowMetadataEntity == null) { - log.debug(String.format("Current Project %1$s's PageFlowMetadata %2$s Content is Null.", metadataEventArgs.getMetadata().getRelativePath(), appConfigInfo.getPageFlowMetadataFileName())); + WebLogger.Instance.info(String.format("Current Project %1$s's PageFlowMetadata %2$s Content is Null.", metadataEventArgs.getMetadata().getRelativePath(), appConfigInfo.getPageFlowMetadataFileName())); return; } } // (2) 从页面流中同步删除该表单元数据的记录 - log.debug("Current PageFlowMetadataEntity Pages Number is:" + pageFlowMetadataEntity.getPages().length); + WebLogger.Instance.info("Current PageFlowMetadataEntity Pages Number is:" + pageFlowMetadataEntity.getPages().length); Page[] updatePages = null; for (int i = 0; i < pageFlowMetadataEntity.getPages().length; i++) { // 检测到该表单元数据存在页面流中 @@ -142,7 +141,7 @@ public class PageFlowMetadataUpdateService { return; } pageFlowMetadataEntity.setPages(updatePages); - log.debug("Updated Pages Number is:" + updatePages.length); + WebLogger.Instance.info("Updated Pages Number is:" + updatePages.length); if (pageFlowMetadataEntity.getPages().length == 0) { pageFlowMetadataEntity.setEntry(""); @@ -153,13 +152,13 @@ public class PageFlowMetadataUpdateService { // (3) 更新页面流元数据 if (TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { - RouteMetataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getMobilePageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); + RouteMetadataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getMobilePageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); } else { - RouteMetataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getPageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); + RouteMetadataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getPageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); } - log.debug("Debug_PageFlowMetadataDeleteEventListener_SyncPageFlowMetadata: Done."); + WebLogger.Instance.info("Debug_PageFlowMetadataDeleteEventListener_SyncPageFlowMetadata: Done."); } private GspAppConfig getOrCreateGspAppConfig(String metadataRelativePath) { @@ -234,7 +233,7 @@ public class PageFlowMetadataUpdateService { pageFlowMetadataName = pageFlowMetadata.getHeader().getName(); } - pageFlowMetadataEntity = RouteMetataService.getRouteMetadataContentWithMetadataIdAndProjectPath(pageFlowMetadataId, pageFlowMetadataName, projectPath); + pageFlowMetadataEntity = RouteMetadataService.getRouteMetadataContentWithMetadataIdAndProjectPath(pageFlowMetadataId, pageFlowMetadataName, projectPath); return pageFlowMetadataEntity; } @@ -283,9 +282,9 @@ public class PageFlowMetadataUpdateService { private void saveRouteMetadataContent(MetadataEventArgs metadataEventArgs, PageFlowMetadataEntity pageFlowMetadataEntity, GspAppConfig appConfigInfo) { if (TerminalType.PC.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { - RouteMetataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getPageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); + RouteMetadataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getPageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); } else if (TerminalType.MOBILE.getMetadataType().equals(metadataEventArgs.getMetadata().getHeader().getType())) { - RouteMetataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getMobilePageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); + RouteMetadataService.saveRouteMetadataContent(pageFlowMetadataEntity, appConfigInfo.getMobilePageFlowMetadataID(), metadataEventArgs.getMetadata().getRelativePath()); } } diff --git a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetataService.java b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetadataService.java similarity index 93% rename from web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetataService.java rename to web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetadataService.java index 457b7e5d39a0a9ea892f493cd9ed9d73a2788fd8..fdd5cb780e637816cba6187b2c48f92ea9f33be1 100644 --- a/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetataService.java +++ b/web-pageflow-metadata/src/main/java/com/inspur/edp/web/pageflow/metadata/service/RouteMetadataService.java @@ -20,6 +20,7 @@ import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.service.MetadataService; import com.inspur.edp.web.common.customexception.WebCustomException; import com.inspur.edp.web.common.io.FileUtility; +import com.inspur.edp.web.common.logger.WebLogger; import com.inspur.edp.web.common.metadata.MetadataGetterParameter; import com.inspur.edp.web.common.metadata.MetadataTypeEnum; import com.inspur.edp.web.common.metadata.MetadataUtility; @@ -28,11 +29,13 @@ import com.inspur.edp.web.pageflow.metadata.entity.PageFlowMetadataEntity; import com.inspur.edp.web.pageflow.metadata.entity.PageFlowMetadataEntityManager; import io.iec.edp.caf.commons.exception.ExceptionLevel; import io.iec.edp.caf.commons.utils.SpringBeanUtils; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class RouteMetataService { +/** + * 页面流元数据service + * + * @author noah + */ +public class RouteMetadataService { /** * 获取路由元数据内容 @@ -78,14 +81,13 @@ public class RouteMetataService { GspMetadata routeMetadata = MetadataUtility.getInstance().getMetadataWithDesign(metadataGetterParameter); if (routeMetadata == null) { - log.debug("Save Route Metadata Content Operation is Stopped Because Target Route Metadata is NULL."); + WebLogger.Instance.error("Save Route Metadata Content Operation is Stopped Because Target Route Metadata is NULL."); return; } routeMetadata.setContent(pageFlowMetadataEntity); MetadataService metadataService = SpringBeanUtils.getBean(MetadataService.class); - metadataService.saveMetadata(routeMetadata, routeMetadata.getRelativePath() + FileUtility.DIRECTORY_SEPARATOR_CHAR + routeMetadata.getHeader().getFileName()); } @@ -95,7 +97,7 @@ public class RouteMetataService { * @param pageFlowMetadataEntity * @return */ - public static String getcurrentpagerouteuri(PageFlowMetadataEntity pageFlowMetadataEntity, String pageId) { + public static String getCurrentPageRouteUri(PageFlowMetadataEntity pageFlowMetadataEntity, String pageId) { if (pageFlowMetadataEntity == null || StringUtility.isNullOrEmpty(pageId)) { throw new WebCustomException("Current Route Metadata Content is Null or the Page id is Nulll or Empty.", null, ExceptionLevel.Warning); } diff --git a/web-pageflow-metadata/src/test/java/com/inspur/edp/web/pageflow/metadata/entity/PageFlowMetadataEntityTest.java b/web-pageflow-metadata/src/test/java/com/inspur/edp/web/pageflow/metadata/entity/PageFlowMetadataEntityTest.java index cffe954370d08cc6aec850eeca55a248314bc22a..008de8f364b90094347b403996fe742aa1f91910 100644 --- a/web-pageflow-metadata/src/test/java/com/inspur/edp/web/pageflow/metadata/entity/PageFlowMetadataEntityTest.java +++ b/web-pageflow-metadata/src/test/java/com/inspur/edp/web/pageflow/metadata/entity/PageFlowMetadataEntityTest.java @@ -19,10 +19,6 @@ package com.inspur.edp.web.pageflow.metadata.entity; import com.inspur.edp.web.common.utility.RandomUtility; import org.junit.Test; -import java.util.Random; - -import static org.junit.Assert.*; - public class PageFlowMetadataEntityTest { @Test diff --git a/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/listener/SourceCodeMetadataEventListener.java b/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/listener/SourceCodeMetadataEventListener.java index 22dc6bea4e53d9a71ecdcea6dcec2f883107f85d..fcb192a618fccaf734eae04c8f55a1fab270f95c 100644 --- a/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/listener/SourceCodeMetadataEventListener.java +++ b/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/listener/SourceCodeMetadataEventListener.java @@ -22,7 +22,6 @@ import com.inspur.edp.lcm.metadata.spi.event.MetadataEventListener; import com.inspur.edp.web.common.metadata.GspProjectUtility; import com.inspur.edp.web.sourcecode.metadata.entity.SourceCodeMetadataEntity; import com.inspur.edp.web.sourcecode.metadata.utility.SourceCodeMetadataUtility; -import io.iec.edp.caf.commons.exception.CAFRuntimeException; /** * 自定义web构建事件监听 diff --git a/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/utility/SourceCodeMetadataUtility.java b/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/utility/SourceCodeMetadataUtility.java index d248ec9fad3c506833d78e2512fea40a72e720da..d65ccf2b76c1cd0fbfea2077661a46ce53296476 100644 --- a/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/utility/SourceCodeMetadataUtility.java +++ b/web-sourcecode-metadata/src/main/java/com/inspur/edp/web/sourcecode/metadata/utility/SourceCodeMetadataUtility.java @@ -19,16 +19,14 @@ package com.inspur.edp.web.sourcecode.metadata.utility; import com.inspur.edp.lcm.metadata.api.entity.MetadataProject; import com.inspur.edp.lcm.metadata.api.service.MetadataProjectService; import com.inspur.edp.web.common.encrypt.EncryptUtility; +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.StringUtility; import com.inspur.edp.web.sourcecode.metadata.entity.SourceCodeItemEntity; import com.inspur.edp.web.sourcecode.metadata.entity.SourceCodeMetadataEntity; import io.iec.edp.caf.commons.utils.SpringBeanUtils; -import lombok.extern.slf4j.Slf4j; -import com.inspur.edp.web.common.io.FileUtility; -@Slf4j public class SourceCodeMetadataUtility { /** * 自定义web构件 项增加文件内容作为填充 @@ -57,7 +55,7 @@ public class SourceCodeMetadataUtility { item.setSourceFileContent(strBase64Encoding); } catch (RuntimeException ex) { - log.error("sourceCodeMetadata saving," + ex.getMessage(), ex); + WebLogger.Instance.error("sourceCodeMetadata saving," + ex.getMessage()); } } else { WebLogger.Instance.info("自定义web构件,文件不存在,对应路径路径:" + absolutePath); diff --git a/web-statemachine/src/test/java/com/inspur/edp/web/statemachine/metadata/StateMachineMetadataContentTest.java b/web-statemachine/src/test/java/com/inspur/edp/web/statemachine/metadata/StateMachineMetadataContentTest.java index 2dec898c176fa7cd9acf73ea164012db9a8403c3..9638d6f82299fe23aca2d251cf6735767f5ec604 100644 --- a/web-statemachine/src/test/java/com/inspur/edp/web/statemachine/metadata/StateMachineMetadataContentTest.java +++ b/web-statemachine/src/test/java/com/inspur/edp/web/statemachine/metadata/StateMachineMetadataContentTest.java @@ -19,8 +19,6 @@ package com.inspur.edp.web.statemachine.metadata; import com.inspur.edp.web.common.serialize.SerializeUtility; import org.junit.Test; -import static org.junit.Assert.*; - public class StateMachineMetadataContentTest { @Test public void testSerialize() { diff --git a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java index 71439467351264a57d0c847184f3ce4188f6e978..af2295f8d122765ba58a0372fce01a4888594f75 100644 --- a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java +++ b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java @@ -18,8 +18,6 @@ package com.inspur.edp.web.tsfile.core.service; import com.inspur.edp.web.common.io.FileUtility; import com.inspur.edp.web.tsfile.api.service.TsFileService; -import com.inspur.edp.web.tsfile.core.util.NameUtil; -import org.apache.commons.io.FilenameUtils; import java.util.ArrayList;