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.
      */

Reply via email to