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 <[email protected]>
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.
*/