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 d07d2b8fec [type:fix] (logging-aliyun): Fixed the issue where Aliyun 
log configuration was not refreshed correctly after modification. (#6000)
d07d2b8fec is described below

commit d07d2b8fece2d19f1fa5333dc9b39473effbcaed
Author: yqw570994511 <[email protected]>
AuthorDate: Mon Apr 14 09:38:27 2025 +0800

    [type:fix] (logging-aliyun): Fixed the issue where Aliyun log configuration 
was not refreshed correctly after modification. (#6000)
    
    Co-authored-by: yuqianwei <qq120405>
    Co-authored-by: aias00 <[email protected]>
---
 .../aliyun/sls/config/AliyunLogCollectConfig.java  |  9 ++-
 .../LoggingAliyunSlsPluginDataHandlerTest.java     | 77 +++++++++++++++++++++-
 2 files changed, 83 insertions(+), 3 deletions(-)

diff --git 
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/main/java/org/apache/shenyu/plugin/aliyun/sls/config/AliyunLogCollectConfig.java
 
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/main/java/org/apache/shenyu/plugin/aliyun/sls/config/AliyunLogCollectConfig.java
index 4ee4c11142..9930ec16d9 100644
--- 
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/main/java/org/apache/shenyu/plugin/aliyun/sls/config/AliyunLogCollectConfig.java
+++ 
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/main/java/org/apache/shenyu/plugin/aliyun/sls/config/AliyunLogCollectConfig.java
@@ -306,13 +306,18 @@ public class AliyunLogCollectConfig {
                     && Objects.equals(getSendThreadCount(), 
that.getSendThreadCount())
                     && Objects.equals(getShardCount(), that.getShardCount())
                     && Objects.equals(getTopic(), that.getTopic())
-                    && Objects.equals(getTtlInDay(), that.getTtlInDay());
+                    && Objects.equals(getTtlInDay(), that.getTtlInDay())
+                    && Objects.equals(getSampleRate(), that.getSampleRate())
+                    && Objects.equals(getBufferQueueSize(), 
that.getBufferQueueSize())
+                    && Objects.equals(getMaxRequestBody(), 
that.getMaxRequestBody())
+                    && Objects.equals(getMaxResponseBody(), 
that.getMaxResponseBody());
         }
 
         @Override
         public int hashCode() {
             return Objects.hash(accessId, accessKey, host, ioThreadCount, 
logStoreName,
-                    projectName, sendThreadCount, shardCount, topic, ttlInDay);
+                    projectName, sendThreadCount, shardCount, topic, ttlInDay,
+                    getSampleRate(), getBufferQueueSize(), 
getMaxRequestBody(), getMaxResponseBody());
         }
     }
 }
diff --git 
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/test/java/org/apache/shenyu/plugin/aliyun/sls/handler/LoggingAliyunSlsPluginDataHandlerTest.java
 
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/test/java/org/apache/shenyu/plugin/aliyun/sls/handler/LoggingAliyunSlsPluginDataHandlerTest.java
index bd81672e97..cfbb05c55b 100644
--- 
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/test/java/org/apache/shenyu/plugin/aliyun/sls/handler/LoggingAliyunSlsPluginDataHandlerTest.java
+++ 
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/src/test/java/org/apache/shenyu/plugin/aliyun/sls/handler/LoggingAliyunSlsPluginDataHandlerTest.java
@@ -19,17 +19,33 @@ package org.apache.shenyu.plugin.aliyun.sls.handler;
 
 import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.enums.PluginEnum;
+import org.apache.shenyu.common.utils.GsonUtils;
+import org.apache.shenyu.common.utils.Singleton;
 import org.apache.shenyu.plugin.aliyun.sls.client.AliyunSlsLogCollectClient;
+import org.apache.shenyu.plugin.aliyun.sls.config.AliyunLogCollectConfig;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.lang.reflect.Field;
 import java.util.UUID;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
 /**
  * The Test Case For LoggingAliYunSlsPluginDataHandler.
  */
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public class LoggingAliyunSlsPluginDataHandlerTest {
 
     private LoggingAliyunSlsPluginDataHandler 
loggingAliYunSlsPluginDataHandler;
@@ -38,7 +54,7 @@ public class LoggingAliyunSlsPluginDataHandlerTest {
 
     @BeforeEach
     public void setUp() {
-        this.loggingAliYunSlsPluginDataHandler = new 
LoggingAliyunSlsPluginDataHandler();
+        this.loggingAliYunSlsPluginDataHandler = Mockito.spy(new 
LoggingAliyunSlsPluginDataHandler());
         pluginData.setEnabled(true);
         pluginData.setId(UUID.randomUUID().toString().replace("-", ""));
         pluginData.setConfig("{\"topic\":\"shenyu-topic-test\", 
\"accessId\":\"test\", \"accessKey\":\"test\", "
@@ -64,4 +80,63 @@ public class LoggingAliyunSlsPluginDataHandlerTest {
     public void testGetAliyunSlsLogCollectClient() {
         
Assertions.assertEquals(LoggingAliyunSlsPluginDataHandler.getAliyunSlsLogCollectClient().getClass(),
 AliyunSlsLogCollectClient.class);
     }
+
+    @Test
+    public void testHandlerPluginUpdateSameConfig() {
+        AliyunLogCollectConfig.AliyunSlsLogConfig existingConfig = 
createValidConfig();
+        Singleton.INST.single(existingConfig.getClass(), existingConfig);
+
+        PluginData pluginData = createPluginData();
+        pluginData.setConfig(GsonUtils.getGson().toJson(existingConfig));
+
+        loggingAliYunSlsPluginDataHandler.handlerPlugin(pluginData);
+
+        verify(loggingAliYunSlsPluginDataHandler, 
never()).doRefreshConfig(any());
+    }
+
+    @Test
+    public void testHandlerPluginUpdateDifferentConfig() {
+        AliyunLogCollectConfig.AliyunSlsLogConfig existingConfig = 
createValidConfig();
+        Singleton.INST.single(existingConfig.getClass(), existingConfig);
+
+        AliyunLogCollectConfig.AliyunSlsLogConfig updatedConfig = 
createValidConfig();
+        updatedConfig.setSampleRate("1");
+        updatedConfig.setBufferQueueSize(2048);
+        updatedConfig.setMaxRequestBody(2048);
+        updatedConfig.setMaxResponseBody(2048);
+        PluginData pluginData = createPluginData();
+        pluginData.setConfig(GsonUtils.getGson().toJson(updatedConfig));
+
+        
doNothing().when(loggingAliYunSlsPluginDataHandler).doRefreshConfig(any());
+
+        loggingAliYunSlsPluginDataHandler.handlerPlugin(pluginData);
+
+        verify(loggingAliYunSlsPluginDataHandler, 
times(1)).doRefreshConfig(any());
+    }
+
+    private PluginData createPluginData() {
+        PluginData pluginData = new PluginData();
+        pluginData.setEnabled(true);
+        pluginData.setId(UUID.randomUUID().toString().replace("-", ""));
+        return pluginData;
+    }
+
+    private AliyunLogCollectConfig.AliyunSlsLogConfig createValidConfig() {
+        AliyunLogCollectConfig.AliyunSlsLogConfig config = new 
AliyunLogCollectConfig.AliyunSlsLogConfig();
+        config.setAccessId("test");
+        config.setAccessKey("test");
+        config.setHost("cn-guangzhou.log.aliyuncs.com");
+        config.setProjectName("shenyu-test");
+        config.setLogStoreName("shenyu-logstore");
+        config.setTopic("shenyu-topic");
+        config.setTtlInDay(3);
+        config.setShardCount(10);
+        config.setSendThreadCount(1);
+        config.setIoThreadCount(1);
+        config.setSampleRate("1");
+        config.setMaxRequestBody(1024);
+        config.setMaxResponseBody(1024);
+        config.setBufferQueueSize(1024);
+        return config;
+    }
 }

Reply via email to