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;
+ }
}