You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by ke...@apache.org on 2023/02/07 05:48:30 UTC

[shenyu] branch master updated: [ISSUE #4334] optimize shenyu-admin (#4334) (#4340)

This is an automated email from the ASF dual-hosted git repository.

kevinclair 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 20eebb7e7 [ISSUE #4334] optimize shenyu-admin (#4334) (#4340)
20eebb7e7 is described below

commit 20eebb7e73e6e9055736e74e4121b68300035439
Author: Ricco Chen <zp...@gmail.com>
AuthorDate: Tue Feb 7 13:48:22 2023 +0800

    [ISSUE #4334] optimize shenyu-admin (#4334) (#4340)
    
    optimize shenyu-admin
---
 .../admin/config/RegisterCenterConfiguration.java  |  3 +-
 .../admin/config/ShenyuAdminConfiguration.java     |  3 +-
 .../executor/RegisterServerConsumerExecutor.java   |  3 +-
 .../listener/consul/ConsulDataChangedInit.java     |  5 ++-
 .../admin/listener/etcd/EtcdDataChangedInit.java   |  6 ++--
 .../admin/listener/nacos/NacosDataChangedInit.java |  6 ++--
 .../zookeeper/ZookeeperDataChangedInit.java        |  6 ++--
 .../apache/shenyu/admin/model/bean/DocItem.java    |  8 +----
 .../shenyu/admin/service/impl/ApiServiceImpl.java  | 40 ++++++++--------------
 .../admin/service/impl/AppAuthServiceImpl.java     | 20 +++++------
 .../admin/service/impl/PermissionServiceImpl.java  |  3 +-
 .../shenyu/admin/service/impl/RoleServiceImpl.java |  7 +---
 .../shenyu/admin/service/impl/TagServiceImpl.java  | 15 ++++----
 .../manager/impl/LoadServiceDocEntryImpl.java      |  4 +--
 .../org/apache/shenyu/admin/utils/HttpUtils.java   | 16 +++------
 .../org/apache/shenyu/admin/utils/ListUtil.java    |  7 +---
 .../apache/shenyu/admin/utils/ResourceUtil.java    |  7 +---
 .../admin/controller/PermissionControllerTest.java |  4 +--
 .../shenyu/admin/service/ApiServiceTest.java       |  9 ++---
 .../shenyu/admin/service/PluginServiceTest.java    |  8 ++---
 .../shenyu/admin/service/RuleServiceTest.java      |  9 ++---
 .../admin/service/ShenyuDictServiceTest.java       |  8 ++---
 .../ShenyuClientRegisterDivideServiceImplTest.java |  5 +--
 .../ShenyuClientRegisterDubboServiceImplTest.java  |  5 +--
 .../ShenyuClientRegisterGrpcServiceImplTest.java   |  5 +--
 ...yuClientRegisterSpringCloudServiceImplTest.java |  5 +--
 .../ShenyuClientRegisterTarsServiceImplTest.java   |  7 ++--
 27 files changed, 90 insertions(+), 134 deletions(-)

diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/RegisterCenterConfiguration.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/RegisterCenterConfiguration.java
index c245a7ed7..79855c1e4 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/RegisterCenterConfiguration.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/RegisterCenterConfiguration.java
@@ -28,6 +28,7 @@ import org.springframework.context.annotation.Configuration;
 
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -60,7 +61,7 @@ public class RegisterCenterConfiguration {
         String registerType = shenyuRegisterCenterConfig.getRegisterType();
         ShenyuClientServerRegisterRepository registerRepository = ExtensionLoader.getExtensionLoader(ShenyuClientServerRegisterRepository.class).getJoin(registerType);
         RegisterClientServerDisruptorPublisher publisher = RegisterClientServerDisruptorPublisher.getInstance();
-        Map<String, ShenyuClientRegisterService> registerServiceMap = shenyuClientRegisterService.stream().collect(Collectors.toMap(ShenyuClientRegisterService::rpcType, e -> e));
+        Map<String, ShenyuClientRegisterService> registerServiceMap = shenyuClientRegisterService.stream().collect(Collectors.toMap(ShenyuClientRegisterService::rpcType, Function.identity()));
         publisher.start(registerServiceMap);
         registerRepository.init(publisher, shenyuRegisterCenterConfig);
         return registerRepository;
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/ShenyuAdminConfiguration.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/ShenyuAdminConfiguration.java
index 8cf988669..0e9ede0ef 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/ShenyuAdminConfiguration.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/ShenyuAdminConfiguration.java
@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -42,7 +43,7 @@ public class ShenyuAdminConfiguration {
      */
     @Bean
     public SelectorHandleConverterFactor selectorHandleConverterFactor(final List<SelectorHandleConverter> converterList) {
-        Map<String, SelectorHandleConverter> converterMap = converterList.stream().collect(Collectors.toMap(SelectorHandleConverter::pluginName, e -> e));
+        Map<String, SelectorHandleConverter> converterMap = converterList.stream().collect(Collectors.toMap(SelectorHandleConverter::pluginName, Function.identity()));
         return new SelectorHandleConverterFactor(converterMap);
     }
 }
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/disruptor/executor/RegisterServerConsumerExecutor.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/disruptor/executor/RegisterServerConsumerExecutor.java
index 2cc85567c..d8df409ab 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/disruptor/executor/RegisterServerConsumerExecutor.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/disruptor/executor/RegisterServerConsumerExecutor.java
@@ -34,6 +34,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -91,7 +92,7 @@ public final class RegisterServerConsumerExecutor extends QueueConsumerExecutor<
             Map<DataType, ExecutorTypeSubscriber<DataTypeParent>> maps = getSubscribers()
                     .stream()
                     .map(e -> (ExecutorTypeSubscriber<DataTypeParent>) e)
-                    .collect(Collectors.toMap(ExecutorTypeSubscriber::getType, e -> e));
+                    .collect(Collectors.toMap(ExecutorTypeSubscriber::getType, Function.identity()));
             return new RegisterServerConsumerExecutor(maps);
         }
     
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/consul/ConsulDataChangedInit.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/consul/ConsulDataChangedInit.java
index 1f26a4d75..efcf32de3 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/consul/ConsulDataChangedInit.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/consul/ConsulDataChangedInit.java
@@ -22,6 +22,7 @@ import org.apache.shenyu.admin.listener.AbstractDataChangedInit;
 import org.apache.shenyu.common.constant.ConsulConstants;
 
 import java.util.Objects;
+import java.util.stream.Stream;
 
 /**
  * The type Consul data changed init.
@@ -43,9 +44,7 @@ public class ConsulDataChangedInit extends AbstractDataChangedInit {
 
     @Override
     protected boolean notExist() {
-        return dataKeyNotExist(ConsulConstants.PLUGIN_DATA)
-                && dataKeyNotExist(ConsulConstants.AUTH_DATA)
-                && dataKeyNotExist(ConsulConstants.META_DATA);
+        return Stream.of(ConsulConstants.PLUGIN_DATA, ConsulConstants.AUTH_DATA, ConsulConstants.META_DATA).allMatch(this::dataKeyNotExist);
     }
 
     private boolean dataKeyNotExist(final String dataKey) {
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataChangedInit.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataChangedInit.java
index 820961178..7110cd38d 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataChangedInit.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataChangedInit.java
@@ -20,6 +20,8 @@ package org.apache.shenyu.admin.listener.etcd;
 import org.apache.shenyu.admin.listener.AbstractDataChangedInit;
 import org.apache.shenyu.common.constant.DefaultPathConstants;
 
+import java.util.stream.Stream;
+
 /**
  * The type Etcd data changed init.
  *
@@ -40,8 +42,6 @@ public class EtcdDataChangedInit extends AbstractDataChangedInit {
 
     @Override
     protected boolean notExist() {
-        return !etcdClient.exists(DefaultPathConstants.PLUGIN_PARENT)
-                && !etcdClient.exists(DefaultPathConstants.APP_AUTH_PARENT)
-                && !etcdClient.exists(DefaultPathConstants.META_DATA);
+        return Stream.of(DefaultPathConstants.PLUGIN_PARENT, DefaultPathConstants.APP_AUTH_PARENT, DefaultPathConstants.META_DATA).noneMatch(etcdClient::exists);
     }
 }
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedInit.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedInit.java
index 30f82f6d1..e91483cde 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedInit.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedInit.java
@@ -26,6 +26,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.Objects;
+import java.util.stream.Stream;
 
 /**
  * The type Nacos data changed init.
@@ -49,9 +50,8 @@ public class NacosDataChangedInit extends AbstractDataChangedInit {
 
     @Override
     protected boolean notExist() {
-        return dataIdNotExist(NacosPathConstants.PLUGIN_DATA_ID)
-                && dataIdNotExist(NacosPathConstants.AUTH_DATA_ID)
-                && dataIdNotExist(NacosPathConstants.META_DATA_ID);
+        return Stream.of(NacosPathConstants.PLUGIN_DATA_ID, NacosPathConstants.AUTH_DATA_ID, NacosPathConstants.META_DATA_ID).allMatch(
+            this::dataIdNotExist);
     }
 
     private boolean dataIdNotExist(final String pluginDataId) {
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedInit.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedInit.java
index efb511642..f31bedd9c 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedInit.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedInit.java
@@ -21,6 +21,8 @@ import org.apache.shenyu.admin.listener.AbstractDataChangedInit;
 import org.apache.shenyu.common.constant.DefaultPathConstants;
 import org.apache.shenyu.register.client.server.zookeeper.ZookeeperClient;
 
+import java.util.stream.Stream;
+
 /**
  * The type Zookeeper data changed init.
  *
@@ -41,8 +43,6 @@ public class ZookeeperDataChangedInit extends AbstractDataChangedInit {
 
     @Override
     protected boolean notExist() {
-        return !zkClient.isExist(DefaultPathConstants.PLUGIN_PARENT)
-                && !zkClient.isExist(DefaultPathConstants.APP_AUTH_PARENT)
-                && !zkClient.isExist(DefaultPathConstants.META_DATA);
+        return Stream.of(DefaultPathConstants.PLUGIN_PARENT, DefaultPathConstants.APP_AUTH_PARENT, DefaultPathConstants.META_DATA).noneMatch(zkClient::isExist);
     }
 }
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/bean/DocItem.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/bean/DocItem.java
index fea6ed869..48ca17e40 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/bean/DocItem.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/bean/DocItem.java
@@ -75,13 +75,7 @@ public class DocItem {
     public boolean isUploadRequest() {
         boolean upload = false;
         if (requestParameters != null) {
-            for (DocParameter requestParameter : requestParameters) {
-                String type = requestParameter.getType();
-                if ("file".equalsIgnoreCase(type)) {
-                    upload = true;
-                    break;
-                }
-            }
+            upload = requestParameters.stream().map(DocParameter::getType).anyMatch("file"::equalsIgnoreCase);
         }
         return multiple || upload;
     }
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ApiServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ApiServiceImpl.java
index 0c27bfd7a..b8d087d36 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ApiServiceImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ApiServiceImpl.java
@@ -83,16 +83,13 @@ public class ApiServiceImpl implements ApiService {
         final int updateRows = apiMapper.updateByPrimaryKeySelective(apiDO);
         if (CollectionUtils.isNotEmpty(apiDTO.getTagIds()) && updateRows > 0) {
             List<String> tagIds = apiDTO.getTagIds();
-            List<TagRelationDO> tags = Lists.newArrayList();
             Timestamp currentTime = new Timestamp(System.currentTimeMillis());
-            for (String tagId : tagIds) {
-                tags.add(TagRelationDO.builder()
-                        .id(UUIDUtils.getInstance().generateShortUuid())
-                        .apiId(apiDO.getId())
-                        .tagId(tagId)
-                        .dateUpdated(currentTime)
-                        .build());
-            }
+            List<TagRelationDO> tags = tagIds.stream().map(tagId -> TagRelationDO.builder()
+                .id(UUIDUtils.getInstance().generateShortUuid())
+                .apiId(apiDO.getId())
+                .tagId(tagId)
+                .dateUpdated(currentTime)
+                .build()).collect(Collectors.toList());
             tagRelationMapper.deleteByApiId(apiDO.getId());
             tagRelationMapper.batchInsert(tags);
         }
@@ -110,17 +107,14 @@ public class ApiServiceImpl implements ApiService {
         final int insertRows = apiMapper.insertSelective(apiDO);
         if (CollectionUtils.isNotEmpty(apiDTO.getTagIds()) && insertRows > 0) {
             List<String> tagIds = apiDTO.getTagIds();
-            List<TagRelationDO> tags = Lists.newArrayList();
             Timestamp currentTime = new Timestamp(System.currentTimeMillis());
-            for (String tagId : tagIds) {
-                tags.add(TagRelationDO.builder()
-                        .id(UUIDUtils.getInstance().generateShortUuid())
-                        .apiId(apiDO.getId())
-                        .tagId(tagId)
-                        .dateCreated(currentTime)
-                        .dateUpdated(currentTime)
-                        .build());
-            }
+            List<TagRelationDO> tags = tagIds.stream().map(tagId -> TagRelationDO.builder()
+                .id(UUIDUtils.getInstance().generateShortUuid())
+                .apiId(apiDO.getId())
+                .tagId(tagId)
+                .dateCreated(currentTime)
+                .dateUpdated(currentTime)
+                .build()).collect(Collectors.toList());
             tagRelationMapper.batchInsert(tags);
         }
         return ShenyuResultMessage.CREATE_SUCCESS;
@@ -151,9 +145,7 @@ public class ApiServiceImpl implements ApiService {
             List<TagVO> tagVOS = Lists.newArrayList();
             if (CollectionUtils.isNotEmpty(tagIds)) {
                 List<TagDO> tagDOS = tagMapper.selectByIds(tagIds);
-                for (TagDO tagDO : tagDOS) {
-                    tagVOS.add(TagVO.buildTagVO(tagDO));
-                }
+                tagVOS = tagDOS.stream().map(TagVO::buildTagVO).collect(Collectors.toList());
             }
             return ApiVO.buildApiVO(item, tagVOS);
         }).orElse(null);
@@ -168,9 +160,7 @@ public class ApiServiceImpl implements ApiService {
                     List<TagVO> tagVOS = Lists.newArrayList();
                     if (CollectionUtils.isNotEmpty(tagIds)) {
                         List<TagDO> tagDOS = tagMapper.selectByIds(tagIds);
-                        for (TagDO tagDO : tagDOS) {
-                            tagVOS.add(TagVO.buildTagVO(tagDO));
-                        }
+                        tagVOS = tagDOS.stream().map(TagVO::buildTagVO).collect(Collectors.toList());
                     }
                     return ApiVO.buildApiVO(item, tagVOS);
                 }).collect(Collectors.toList()));
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AppAuthServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AppAuthServiceImpl.java
index 53f099d9a..f6a83673f 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AppAuthServiceImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AppAuthServiceImpl.java
@@ -300,18 +300,14 @@ public class AppAuthServiceImpl implements AppAuthService {
         authParamMapper.deleteByAuthIds(ids);
         authPathMapper.deleteByAuthIds(ids);
 
-        List<AppAuthData> appAuthData = new ArrayList<>(appAuthList.size());
-        appAuthList.forEach(appAuthDO -> {
-            AppAuthData data = AppAuthData.builder()
-                    .appKey(appAuthDO.getAppKey())
-                    .appSecret(appAuthDO.getAppSecret())
-                    .open(appAuthDO.getOpen())
-                    .enabled(appAuthDO.getEnabled())
-                    .paramDataList(null)
-                    .pathDataList(null)
-                    .build();
-            appAuthData.add(data);
-        });
+        List<AppAuthData> appAuthData = appAuthList.stream().map(appAuthDO -> AppAuthData.builder()
+            .appKey(appAuthDO.getAppKey())
+            .appSecret(appAuthDO.getAppSecret())
+            .open(appAuthDO.getOpen())
+            .enabled(appAuthDO.getEnabled())
+            .paramDataList(null)
+            .pathDataList(null)
+            .build()).collect(Collectors.toCollection(() -> new ArrayList<>(appAuthList.size())));
         // publish delete event of AppAuthData
         eventPublisher.publishEvent(new DataChangedEvent(ConfigGroupEnum.APP_AUTH, DataEventTypeEnum.DELETE, appAuthData));
 
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PermissionServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PermissionServiceImpl.java
index e56b64e69..6fcd58463 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PermissionServiceImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PermissionServiceImpl.java
@@ -48,6 +48,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -255,7 +256,7 @@ public class PermissionServiceImpl implements PermissionService {
         
         Map<String, Integer> map = preList.stream()
                 .distinct()
-                .collect(Collectors.toMap(source -> source, source -> 1));
+                .collect(Collectors.toMap(Function.identity(), source -> 1));
         return lastList.stream()
                 .filter(item -> !map.containsKey(item))
                 .collect(Collectors.toList());
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/RoleServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/RoleServiceImpl.java
index 0fd55a93a..afd574a42 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/RoleServiceImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/RoleServiceImpl.java
@@ -231,12 +231,7 @@ public class RoleServiceImpl implements RoleService {
             if (CollectionUtils.isNotEmpty(children)) {
                 ResourceInfo resourceInfo = resourceInfoMap.get(parent);
                 List<ResourceInfo> targetList = Objects.isNull(resourceInfo) ? retList : resourceInfo.getChildren();
-                children.forEach(child -> {
-                    ResourceInfo data = resourceInfoMap.get(child);
-                    if (Objects.nonNull(data)) {
-                        targetList.add(data);
-                    }
-                });
+                children.stream().map(resourceInfoMap::get).filter(Objects::nonNull).forEach(targetList::add);
             }
         });
         return retList;
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/TagServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/TagServiceImpl.java
index 7660d2336..9707c287c 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/TagServiceImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/TagServiceImpl.java
@@ -22,10 +22,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.admin.mapper.TagMapper;
 import org.apache.shenyu.admin.model.dto.TagDTO;
+import org.apache.shenyu.admin.model.entity.BaseDO;
 import org.apache.shenyu.admin.model.entity.TagDO;
 import org.apache.shenyu.admin.model.query.TagQuery;
 import org.apache.shenyu.admin.model.vo.TagVO;
@@ -99,10 +101,8 @@ public class TagServiceImpl implements TagService {
         }
         List<String> rootIds = tagDOS.stream().map(TagDO::getId).collect(Collectors.toList());
         List<TagDO> tagDOList = tagMapper.selectByParentTagIds(rootIds);
-        Map<String, Boolean> map = new ConcurrentHashMap<>();
-        tagDOList.forEach(tagDO -> {
-            map.put(tagDO.getParentTagId(), true);
-        });
+        Map<String, Boolean> map = tagDOList.stream().collect(
+            Collectors.toMap(TagDO::getParentTagId, tagDO -> true, (a, b) -> b, ConcurrentHashMap::new));
         return tagDOS.stream().map(tag -> {
             TagVO tagVO = TagVO.buildTagVO(tag);
             if (map.get(tag.getId()) != null) {
@@ -118,13 +118,12 @@ public class TagServiceImpl implements TagService {
      */
     private void updateSubTags(final TagDTO tagDTO) {
         List<TagDO> allData = tagMapper.selectByQuery(new TagQuery());
-        Map<String, TagDO> allDataMap = new ConcurrentHashMap<>();
-        allData.stream().forEach(tagDO -> allDataMap.put(tagDO.getId(), tagDO));
+        Map<String, TagDO> allDataMap = allData.stream().collect(
+            Collectors.toMap(BaseDO::getId, Function.identity(), (a, b) -> b, ConcurrentHashMap::new));
         TagDO update = TagDO.buildTagDO(tagDTO);
         allDataMap.put(update.getId(), update);
         Map<String, List<String>> relationMap = new ConcurrentHashMap<>();
-        allDataMap.keySet().forEach(tagId -> {
-            TagDO tagDO = allDataMap.get(tagId);
+        allDataMap.keySet().stream().map(allDataMap::get).forEach(tagDO -> {
             if (CollectionUtils.isEmpty(relationMap.get(tagDO.getParentTagId()))) {
                 relationMap.put(tagDO.getParentTagId(), Lists.newArrayList(tagDO.getId()));
             } else {
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/manager/impl/LoadServiceDocEntryImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/manager/impl/LoadServiceDocEntryImpl.java
index 237fd9749..ae18f471c 100755
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/manager/impl/LoadServiceDocEntryImpl.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/manager/impl/LoadServiceDocEntryImpl.java
@@ -143,8 +143,8 @@ public class LoadServiceDocEntryImpl implements LoadServiceDocEntry {
      * @return List
      */
     private List<UpstreamInstance> getAllClusterLastUpdateInstanceList() {
-        List<String> pluginNames = new ArrayList<>();
-        RpcTypeEnum.acquireSupportSwaggers().forEach(rpcTypeEnum -> pluginNames.add(PluginNameAdapter.rpcTypeAdapter(rpcTypeEnum.getName())));
+        List<String> pluginNames = RpcTypeEnum.acquireSupportSwaggers().stream().map(
+            rpcTypeEnum -> PluginNameAdapter.rpcTypeAdapter(rpcTypeEnum.getName())).collect(Collectors.toList());
         final List<PluginDO> pluginDOList = pluginMapper.selectByNames(pluginNames);
         if (CollectionUtils.isEmpty(pluginDOList)) {
             return Collections.emptyList();
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java
index 39309edab..5c574bdce 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java
@@ -52,7 +52,7 @@ import java.util.concurrent.TimeUnit;
 public class HttpUtils {
     private static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
 
-    private Map<String, List<Cookie>> cookieStore = new HashMap<String, List<Cookie>>();
+    private Map<String, List<Cookie>> cookieStore = new HashMap<>();
 
     private OkHttpClient httpClient;
 
@@ -199,13 +199,10 @@ public class HttpUtils {
         addHeader(requestBuilder, header);
 
         Request request = requestBuilder.build();
-        Response response = httpClient
+        try (Response response = httpClient
             .newCall(request)
-            .execute();
-        try {
+            .execute()) {
             return response.body().string();
-        } finally {
-            response.close();
         }
     }
 
@@ -227,13 +224,10 @@ public class HttpUtils {
         addHeader(requestBuilder, header);
 
         Request request = requestBuilder.build();
-        Response response = httpClient
+        try (Response response = httpClient
             .newCall(request)
-            .execute();
-        try {
+            .execute()) {
             return response.body().string();
-        } finally {
-            response.close();
         }
     }
 
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ListUtil.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ListUtil.java
index 9409985ed..526d6a56f 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ListUtil.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ListUtil.java
@@ -106,12 +106,7 @@ public final class ListUtil {
         if (CollectionUtils.isEmpty(list)) {
             return null;
         }
-        for (R r : list) {
-            if (Boolean.TRUE.equals(function.apply(r))) {
-                return r;
-            }
-        }
-        return null;
+        return list.stream().filter(r -> Boolean.TRUE.equals(function.apply(r))).findFirst().orElse(null);
     }
     
     /**
diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ResourceUtil.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ResourceUtil.java
index 68aebd8fc..e3c60d305 100644
--- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ResourceUtil.java
+++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/ResourceUtil.java
@@ -170,12 +170,7 @@ public final class ResourceUtil {
                     PermissionMenuVO.MenuInfo menuInfo = menuInfoMap.get(parent);
                     if (CollectionUtils.isNotEmpty(children)) {
                         List<PermissionMenuVO.MenuInfo> targetList = Objects.isNull(menuInfo) ? retList : menuInfo.getChildren();
-                        children.forEach(child -> {
-                            PermissionMenuVO.MenuInfo data = menuInfoMap.get(child);
-                            if (Objects.nonNull(data)) {
-                                targetList.add(data);
-                            }
-                        });
+                        children.stream().map(menuInfoMap::get).filter(Objects::nonNull).forEach(targetList::add);
                     }
                 });
         
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PermissionControllerTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PermissionControllerTest.java
index 31ef21fd0..746e23b61 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PermissionControllerTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PermissionControllerTest.java
@@ -59,7 +59,7 @@ public class PermissionControllerTest {
                 Arrays.asList(new PermissionMenuVO.AuthPerm("perms2", "description2", "icon")));
         when(mockPermissionService.getPermissionMenu("token")).thenReturn(permissionMenuVO);
         final ShenyuAdminResult result = permissionController.getUserPermissionByToken("token");
-        assertThat(result.getCode().intValue(), is(CommonErrorCode.SUCCESSFUL));
+        assertThat(result.getCode(), is(CommonErrorCode.SUCCESSFUL));
         assertThat(result.getMessage(), is(ShenyuResultMessage.MENU_SUCCESS));
         assertThat(result.getData(), is(permissionMenuVO));
     }
@@ -68,7 +68,7 @@ public class PermissionControllerTest {
     public void testGetUserPermissionByTokenNull() {
         when(mockPermissionService.getPermissionMenu("token")).thenReturn(null);
         final ShenyuAdminResult result = permissionController.getUserPermissionByToken("token");
-        assertThat(result.getCode().intValue(), is(CommonErrorCode.ERROR));
+        assertThat(result.getCode(), is(CommonErrorCode.ERROR));
         assertThat(result.getMessage(), is(ShenyuResultMessage.MENU_FAILED));
     }
 }
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ApiServiceTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ApiServiceTest.java
index 4abcaae7e..6e6082648 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ApiServiceTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ApiServiceTest.java
@@ -40,9 +40,10 @@ import org.mockito.quality.Strictness;
 
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -104,11 +105,7 @@ public final class ApiServiceTest {
         pageParameter.setTotalCount(10);
         pageParameter.setTotalPage(pageParameter.getTotalCount() / pageParameter.getPageSize());
         ApiQuery apiQuery = new ApiQuery(null, 0, "", pageParameter);
-        List<ApiDO> apiDOList = new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            final ApiDO apiDO = buildApiDO("" + i);
-            apiDOList.add(apiDO);
-        }
+        List<ApiDO> apiDOList = IntStream.range(0, 10).mapToObj(i -> buildApiDO("" + i)).collect(Collectors.toList());
         given(this.apiMapper.selectByQuery(apiQuery)).willReturn(apiDOList);
         final CommonPager<ApiVO> apiDOCommonPager = this.apiService.listByPage(apiQuery);
         assertEquals(apiDOCommonPager.getDataList().size(), apiDOList.size());
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/PluginServiceTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/PluginServiceTest.java
index a846aa871..8bf6cb826 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/PluginServiceTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/PluginServiceTest.java
@@ -48,6 +48,8 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
@@ -151,11 +153,7 @@ public final class PluginServiceTest {
         pageParameter.setTotalCount(10);
         pageParameter.setTotalPage(pageParameter.getTotalCount() / pageParameter.getPageSize());
         PluginQuery pluginQuery = new PluginQuery("sofa", 1, pageParameter);
-        List<PluginDO> pluginDOList = new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            PluginDO pluginDO = buildPluginDO(String.valueOf(i));
-            pluginDOList.add(pluginDO);
-        }
+        List<PluginDO> pluginDOList = IntStream.range(0, 10).mapToObj(i -> buildPluginDO(String.valueOf(i))).collect(Collectors.toList());
         given(this.pluginMapper.selectByQuery(pluginQuery)).willReturn(pluginDOList);
         final CommonPager<PluginVO> pluginDOCommonPager = this.pluginService.listByPage(pluginQuery);
         assertEquals(pluginDOCommonPager.getDataList().size(), pluginDOList.size());
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/RuleServiceTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/RuleServiceTest.java
index 1bb51c4e4..00c100941 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/RuleServiceTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/RuleServiceTest.java
@@ -56,11 +56,12 @@ import org.mockito.stubbing.Answer;
 
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.greaterThan;
@@ -149,11 +150,7 @@ public final class RuleServiceTest {
         parameter.setTotalCount(10);
         parameter.setTotalPage(parameter.getTotalCount() / parameter.getPageSize());
         RuleQuery ruleQuery = new RuleQuery("456", null, parameter);
-        List<RuleDO> ruleDOList = new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            RuleDO ruleDO = buildRuleDO(String.valueOf(i));
-            ruleDOList.add(ruleDO);
-        }
+        List<RuleDO> ruleDOList = IntStream.range(0, 10).mapToObj(i -> buildRuleDO(String.valueOf(i))).collect(Collectors.toList());
         given(this.ruleMapper.selectByQuery(ruleQuery)).willReturn(ruleDOList);
         final CommonPager<RuleVO> ruleVOCommonPager = this.ruleService.listByPage(ruleQuery);
         assertEquals(ruleVOCommonPager.getDataList().size(), ruleDOList.size());
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ShenyuDictServiceTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ShenyuDictServiceTest.java
index 786805df3..2c2af317a 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ShenyuDictServiceTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ShenyuDictServiceTest.java
@@ -41,6 +41,8 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.comparesEqualTo;
@@ -142,11 +144,7 @@ public final class ShenyuDictServiceTest {
         pageParameter.setTotalCount(10);
         pageParameter.setTotalPage(pageParameter.getTotalCount() / pageParameter.getPageSize());
         ShenyuDictQuery shenyuDictQuery = new ShenyuDictQuery("1", "t", "t_n", pageParameter);
-        List<ShenyuDictDO> shenyuDictDOList = new ArrayList<>();
-        for (int i = 0; i < 10; i++) {
-            ShenyuDictDO shenyuDictVO = buildShenyuDictDO();
-            shenyuDictDOList.add(shenyuDictVO);
-        }
+        List<ShenyuDictDO> shenyuDictDOList = IntStream.range(0, 10).mapToObj(i -> buildShenyuDictDO()).collect(Collectors.toList());
         given(this.shenyuDictMapper.selectByQuery(shenyuDictQuery)).willReturn(shenyuDictDOList);
         final CommonPager<ShenyuDictVO> pluginDOCommonPager = this.shenyuDictService.listByPage(shenyuDictQuery);
         assertEquals(pluginDOCommonPager.getDataList().size(), shenyuDictDOList.size());
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDivideServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDivideServiceImplTest.java
index e1628ecb7..af584699d 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDivideServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDivideServiceImplTest.java
@@ -24,6 +24,7 @@ import org.apache.shenyu.admin.service.converter.DivideSelectorHandleConverter;
 import org.apache.shenyu.admin.service.impl.MetaDataServiceImpl;
 import org.apache.shenyu.admin.utils.CommonUpstreamUtils;
 import org.apache.shenyu.common.dto.convert.rule.impl.DivideRuleHandle;
+import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
 import org.apache.shenyu.common.dto.convert.selector.DivideUpstream;
 import org.apache.shenyu.common.enums.RpcTypeEnum;
 import org.apache.shenyu.common.exception.ShenyuException;
@@ -121,7 +122,7 @@ public final class ShenyuClientRegisterDivideServiceImplTest {
         List<DivideUpstream> resultList = GsonUtils.getInstance().fromCurrentList(actual, DivideUpstream.class);
         assertEquals(resultList.size(), 3);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
@@ -135,7 +136,7 @@ public final class ShenyuClientRegisterDivideServiceImplTest {
         //localhost:8090 was removed because the stop time was too long
         assertEquals(resultList.size(), 3);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
index 7e44ea2fa..f21e149ce 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterDubboServiceImplTest.java
@@ -24,6 +24,7 @@ import org.apache.shenyu.admin.service.converter.DubboSelectorHandleConverter;
 import org.apache.shenyu.admin.service.impl.MetaDataServiceImpl;
 import org.apache.shenyu.admin.utils.CommonUpstreamUtils;
 import org.apache.shenyu.common.dto.convert.rule.impl.DubboRuleHandle;
+import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
 import org.apache.shenyu.common.dto.convert.selector.DivideUpstream;
 import org.apache.shenyu.common.dto.convert.selector.DubboUpstream;
 import org.apache.shenyu.common.enums.RpcTypeEnum;
@@ -129,7 +130,7 @@ public final class ShenyuClientRegisterDubboServiceImplTest {
         resultList = GsonUtils.getInstance().fromCurrentList(actual, DubboUpstream.class);
         assertEquals(resultList.size(), 3);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
@@ -142,7 +143,7 @@ public final class ShenyuClientRegisterDubboServiceImplTest {
         resultList = GsonUtils.getInstance().fromCurrentList(actual, DubboUpstream.class);
         assertEquals(resultList.size(), 2);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterGrpcServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterGrpcServiceImplTest.java
index e52624b8a..8767bb4ca 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterGrpcServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterGrpcServiceImplTest.java
@@ -23,6 +23,7 @@ import org.apache.shenyu.admin.model.entity.SelectorDO;
 import org.apache.shenyu.admin.service.converter.GrpcSelectorHandleConverter;
 import org.apache.shenyu.admin.service.impl.MetaDataServiceImpl;
 import org.apache.shenyu.admin.utils.CommonUpstreamUtils;
+import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
 import org.apache.shenyu.common.dto.convert.selector.GrpcUpstream;
 import org.apache.shenyu.common.dto.convert.selector.TarsUpstream;
 import org.apache.shenyu.common.enums.RpcTypeEnum;
@@ -127,7 +128,7 @@ public final class ShenyuClientRegisterGrpcServiceImplTest {
         actual = shenyuClientRegisterGrpcService.buildHandle(list, selectorDO);
         resultList = GsonUtils.getInstance().fromCurrentList(actual, GrpcUpstream.class);
         assertEquals(resultList.size(), 3);
-        assertEquals(resultList.stream().anyMatch(r -> r.isStatus()), true);
+        assertEquals(resultList.stream().anyMatch(CommonUpstream::isStatus), true);
 
         list.clear();
         list.add(URIRegisterDTO.builder().appName("test1").rpcType(RpcTypeEnum.GRPC.getName()).host("localhost").port(8090).build());
@@ -138,7 +139,7 @@ public final class ShenyuClientRegisterGrpcServiceImplTest {
         resultList = GsonUtils.getInstance().fromCurrentList(actual, GrpcUpstream.class);
         assertEquals(resultList.size(), 2);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterSpringCloudServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterSpringCloudServiceImplTest.java
index 32ef12707..768545d43 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterSpringCloudServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterSpringCloudServiceImplTest.java
@@ -23,6 +23,7 @@ import org.apache.shenyu.admin.service.converter.SpringCloudSelectorHandleConver
 import org.apache.shenyu.admin.service.impl.MetaDataServiceImpl;
 import org.apache.shenyu.admin.utils.CommonUpstreamUtils;
 import org.apache.shenyu.common.dto.convert.rule.impl.SpringCloudRuleHandle;
+import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
 import org.apache.shenyu.common.dto.convert.selector.SpringCloudSelectorHandle;
 import org.apache.shenyu.common.enums.RpcTypeEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
@@ -122,7 +123,7 @@ public final class ShenyuClientRegisterSpringCloudServiceImplTest {
         SpringCloudSelectorHandle handle = GsonUtils.getInstance().fromJson(actual, SpringCloudSelectorHandle.class);
         assertEquals(handle.getDivideUpstreams().size(), 2);
         assertEquals(handle.getDivideUpstreams().stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(handle.getDivideUpstreams().stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
@@ -136,7 +137,7 @@ public final class ShenyuClientRegisterSpringCloudServiceImplTest {
         handle = GsonUtils.getInstance().fromJson(actual, SpringCloudSelectorHandle.class);
         assertEquals(handle.getDivideUpstreams().size(), 2);
         assertEquals(handle.getDivideUpstreams().stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(handle.getDivideUpstreams().stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
diff --git a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterTarsServiceImplTest.java b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterTarsServiceImplTest.java
index c0b2b855d..7146d2004 100644
--- a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterTarsServiceImplTest.java
+++ b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterTarsServiceImplTest.java
@@ -23,6 +23,7 @@ import org.apache.shenyu.admin.model.entity.SelectorDO;
 import org.apache.shenyu.admin.service.converter.TarsSelectorHandleConverter;
 import org.apache.shenyu.admin.service.impl.MetaDataServiceImpl;
 import org.apache.shenyu.admin.utils.CommonUpstreamUtils;
+import org.apache.shenyu.common.dto.convert.selector.CommonUpstream;
 import org.apache.shenyu.common.dto.convert.selector.TarsUpstream;
 import org.apache.shenyu.common.enums.RpcTypeEnum;
 import org.apache.shenyu.common.exception.ShenyuException;
@@ -118,7 +119,7 @@ public final class ShenyuClientRegisterTarsServiceImplTest {
         List<TarsUpstream> resultList = GsonUtils.getInstance().fromCurrentList(actual, TarsUpstream.class);
         assertEquals(resultList.size(), 2);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
@@ -131,7 +132,7 @@ public final class ShenyuClientRegisterTarsServiceImplTest {
         resultList = GsonUtils.getInstance().fromCurrentList(actual, TarsUpstream.class);
         assertEquals(resultList.size(), 3);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
                 .noneMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> !r.isStatus()), true);
 
@@ -144,7 +145,7 @@ public final class ShenyuClientRegisterTarsServiceImplTest {
         resultList = GsonUtils.getInstance().fromCurrentList(actual, TarsUpstream.class);
         assertEquals(resultList.size(), 1);
         assertEquals(resultList.stream().filter(r -> list.stream().map(dto -> CommonUpstreamUtils.buildUrl(dto.getHost(), dto.getPort()))
-                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(r -> r.isStatus()), true);
+                .anyMatch(url -> url.equals(r.getUpstreamUrl()))).allMatch(CommonUpstream::isStatus), true);
 
         list.clear();
         doReturn(false).when(shenyuClientRegisterTarsService).doSubmit(any(), any());