This is an automated email from the ASF dual-hosted git repository. xiaoyu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push: new 23c4e1fef8 [type:feature] config export support plugin template data (#5850) 23c4e1fef8 is described below commit 23c4e1fef8af077962a719f95a2150190ff2ae22 Author: aias00 <liuhon...@apache.org> AuthorDate: Wed Dec 18 16:43:59 2024 +0800 [type:feature] config export support plugin template data (#5850) * [type:feature] config export support plugin template data * [type:feature] config export support plugin template data --- .../admin/service/impl/ConfigsServiceImpl.java | 9 +++++++++ .../shenyu/admin/service/impl/PluginServiceImpl.java | 20 ++++---------------- .../common/constant/ExportImportConstants.java | 5 +++++ 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ConfigsServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ConfigsServiceImpl.java index 0b55842f52..2b6d8a2d62 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ConfigsServiceImpl.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ConfigsServiceImpl.java @@ -174,6 +174,8 @@ public class ConfigsServiceImpl implements ConfigsService { exportDictData(zipItemList); + exportPluginTemplateData(zipItemList); + exportProxySelectorData(namespace, zipItemList); exportDiscoveryData(namespace, zipItemList); @@ -276,6 +278,13 @@ public class ConfigsServiceImpl implements ConfigsService { zipItemList.add(new ZipUtil.ZipItem(ExportImportConstants.PLUGIN_JSON, JsonUtils.toJson(pluginDataList))); } } + + private void exportPluginTemplateData(final List<ZipUtil.ZipItem> zipItemList) { + List<PluginVO> pluginDataList = pluginService.listAllData(); + if (CollectionUtils.isNotEmpty(pluginDataList)) { + zipItemList.add(new ZipUtil.ZipItem(ExportImportConstants.PLUGIN_TEMPLATE_JSON, JsonUtils.toJson(pluginDataList))); + } + } private void exportMetadata(final List<ZipUtil.ZipItem> zipItemList) { List<MetaDataVO> metaDataList = metaDataService.listAllData(); diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PluginServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PluginServiceImpl.java index 03ef57e5fb..034662438a 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PluginServiceImpl.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PluginServiceImpl.java @@ -244,26 +244,14 @@ public class PluginServiceImpl implements PluginService { List<PluginDO> pluginDOList = pluginMapper.selectByIds(Lists.newArrayList(pluginIdSet)); - // plugin handle - Map<String, List<PluginHandleVO>> pluginHandleMap = pluginHandleService.listAllDataByPluginIds(pluginIdSet) - .stream() - .collect(Collectors.groupingBy(PluginHandleVO::getPluginId)); + if (CollectionUtils.isEmpty(pluginDOList)) { + return Lists.newArrayList(); + } return pluginDOList .stream() .filter(Objects::nonNull) - .map(pluginDO -> { - PluginVO exportVO = PluginVO.buildPluginVO(pluginDO); - List<PluginHandleVO> pluginHandleList = Optional - .ofNullable(pluginHandleMap.getOrDefault(exportVO.getId(), Lists.newArrayList())) - .orElse(Lists.newArrayList()) - .stream() - // to make less volume of export data - .peek(x -> x.setDictOptions(null)) - .collect(Collectors.toList()); - exportVO.setPluginHandleList(pluginHandleList); - return exportVO; - }).collect(Collectors.toList()); + .map(PluginVO::buildPluginVO).collect(Collectors.toList()); } @Override diff --git a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/ExportImportConstants.java b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/ExportImportConstants.java index 9df9c319e3..b396005fec 100644 --- a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/ExportImportConstants.java +++ b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/ExportImportConstants.java @@ -41,6 +41,11 @@ public final class ExportImportConstants { */ public static final String PLUGIN_JSON = "plugin.json"; + /** + * plugin template json config name. + */ + public static final String PLUGIN_TEMPLATE_JSON = "plugin_template.json"; + /** * selector json config name. */