This is an automated email from the ASF dual-hosted git repository.
hefengen 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 4a10c458c9 [type:feature] selector copy and rule copy adapted to
namespace (#5787)
4a10c458c9 is described below
commit 4a10c458c995c9600a420cd099dc6faf9e3d9da0
Author: aias00 <[email protected]>
AuthorDate: Wed Nov 20 19:02:03 2024 +0800
[type:feature] selector copy and rule copy adapted to namespace (#5787)
* [type:feature] selector copy namespace
* [type:feature] selector copy namespace
---
.../apache/shenyu/admin/controller/PluginController.java | 12 ++++++++++++
.../java/org/apache/shenyu/admin/service/PluginService.java | 8 ++++++++
.../apache/shenyu/admin/service/impl/PluginServiceImpl.java | 13 ++++++++++++-
3 files changed, 32 insertions(+), 1 deletion(-)
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
index 20a6bf0a98..f07681efd5 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
@@ -88,6 +88,18 @@ public class PluginController implements
PagedController<PluginQueryCondition, P
return ShenyuAdminResult.success(ShenyuResultMessage.QUERY_SUCCESS,
pluginDataList);
}
+ /**
+ * query plugins by namespace.
+ *
+ * @param namespace namespace.
+ * @return {@linkplain ShenyuAdminResult}
+ */
+ @GetMapping("/listByNamespace")
+ public ShenyuAdminResult queryPluginsByNamespace(final String namespace) {
+ List<PluginData> pluginDataList =
pluginService.listByNamespace(namespace);
+ return ShenyuAdminResult.success(ShenyuResultMessage.QUERY_SUCCESS,
pluginDataList);
+ }
+
/**
* detail plugin.
*
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/PluginService.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/PluginService.java
index d37127bf3c..06966f3194 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/PluginService.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/PluginService.java
@@ -79,6 +79,14 @@ public interface PluginService extends
PageService<PluginQueryCondition, PluginV
* @return the list
*/
List<PluginData> listAll();
+
+ /**
+ * List by namespace list.
+ *
+ * @param namespace the namespace
+ * @return the list
+ */
+ List<PluginData> listByNamespace(String namespace);
/**
* List all vo list.
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 a0d80daf95..de047f6d1d 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
@@ -32,6 +32,7 @@ import org.apache.shenyu.admin.model.page.PageResultUtils;
import org.apache.shenyu.admin.model.query.PluginQuery;
import org.apache.shenyu.admin.model.query.PluginQueryCondition;
import org.apache.shenyu.admin.model.result.ConfigImportResult;
+import org.apache.shenyu.admin.model.vo.NamespacePluginVO;
import org.apache.shenyu.admin.model.vo.PluginHandleVO;
import org.apache.shenyu.admin.model.vo.PluginSnapshotVO;
import org.apache.shenyu.admin.model.vo.PluginVO;
@@ -206,7 +207,17 @@ public class PluginServiceImpl implements PluginService {
public List<PluginData> listAll() {
return ListUtil.map(pluginMapper.selectAll(),
PluginTransfer.INSTANCE::mapToData);
}
-
+
+ @Override
+ public List<PluginData> listByNamespace(final String namespace) {
+ List<NamespacePluginVO> namespacePluginList =
namespacePluginRelMapper.selectAllByNamespaceId(namespace);
+ if (CollectionUtils.isEmpty(namespacePluginList)) {
+ return Lists.newArrayList();
+ }
+ List<String> pluginIds =
namespacePluginList.stream().map(NamespacePluginVO::getPluginId).distinct().collect(Collectors.toList());
+ return ListUtil.map(pluginMapper.selectByIds(pluginIds),
PluginTransfer.INSTANCE::mapToData);
+ }
+
@Override
public List<PluginVO> listAllData() {
// plugin handle