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

zhengqiwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new f59e15bbbe [fix] Fixed an issue where template configuration was 
overwritten (#3649)
f59e15bbbe is described below

commit f59e15bbbe1b7866f5402a1e04e6687e37e6020c
Author: Duansg <[email protected]>
AuthorDate: Sat Aug 9 23:37:10 2025 +0800

    [fix] Fixed an issue where template configuration was overwritten (#3649)
---
 .../manager/service/impl/AppServiceImpl.java       | 14 ++++------
 .../hertzbeat/manager/service/AppServiceTest.java  | 32 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 8 deletions(-)

diff --git 
a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
 
b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
index 470bfb3c45..c8279d8780 100644
--- 
a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
+++ 
b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
@@ -523,16 +523,15 @@ public class AppServiceImpl implements AppService, 
InitializingBean {
         } else {
             if (objectStoreConfig.getType() == ObjectStoreDTO.Type.OBS) {
                 appDefineStore = new ObjectStoreAppDefineStoreImpl();
-            } else if (objectStoreConfig.getType() == 
ObjectStoreDTO.Type.DATABASE){
+            } else if (objectStoreConfig.getType() == 
ObjectStoreDTO.Type.DATABASE) {
                 appDefineStore = new DatabaseAppDefineStoreImpl();
             } else {
                 appDefineStore = new LocalFileAppDefineStoreImpl();
             }
         }
-        var success = appDefineStore.loadAppDefines();
-        if (!success) {
-            new JarAppDefineStoreImpl().loadAppDefines();
-        }
+        jarAppDefineStore.loadAppDefines();
+        // merge define yml files inside jars
+        appDefineStore.loadAppDefines();
     }
 
     private interface AppDefineStore {
@@ -714,7 +713,7 @@ public class AppServiceImpl implements AppService, 
InitializingBean {
                             }
                         }
                     });
-            return false;
+            return true;
         }
 
         @Override
@@ -774,8 +773,7 @@ public class AppServiceImpl implements AppService, 
InitializingBean {
                     appDefines.put(define.getApp().toLowerCase(), app);
                 }
             }
-            // merge define yml files inside jars
-            return false;
+            return true;
         }
 
         @Override
diff --git 
a/hertzbeat-manager/src/test/java/org/apache/hertzbeat/manager/service/AppServiceTest.java
 
b/hertzbeat-manager/src/test/java/org/apache/hertzbeat/manager/service/AppServiceTest.java
index a54d59cef1..63900986ba 100644
--- 
a/hertzbeat-manager/src/test/java/org/apache/hertzbeat/manager/service/AppServiceTest.java
+++ 
b/hertzbeat-manager/src/test/java/org/apache/hertzbeat/manager/service/AppServiceTest.java
@@ -19,10 +19,13 @@ package org.apache.hertzbeat.manager.service;
 
 import org.apache.hertzbeat.common.entity.job.Job;
 import org.apache.hertzbeat.common.entity.job.Metrics;
+import org.apache.hertzbeat.common.entity.manager.Define;
 import org.apache.hertzbeat.common.entity.manager.Monitor;
 import org.apache.hertzbeat.common.entity.manager.ParamDefine;
 import org.apache.hertzbeat.manager.dao.DefineDao;
 import org.apache.hertzbeat.manager.dao.MonitorDao;
+import org.apache.hertzbeat.manager.pojo.dto.ObjectStoreConfigChangeEvent;
+import org.apache.hertzbeat.manager.pojo.dto.ObjectStoreDTO;
 import org.apache.hertzbeat.manager.service.impl.AppServiceImpl;
 import org.apache.hertzbeat.manager.service.impl.ObjectStoreConfigServiceImpl;
 import org.apache.hertzbeat.warehouse.service.WarehouseService;
@@ -41,6 +44,7 @@ import java.util.List;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.anyLong;
@@ -156,4 +160,32 @@ class AppServiceTest {
         });
         assertTrue(exception.getMessage().contains("prohibited keywords"));
     }
+
+    @Test
+    void testRefreshStore() throws Exception {
+        List<Define> defines = new ArrayList<>();
+        Define define = Define.builder()
+                .app("mysql")
+                .content("""
+                        app: mysql
+                        params:
+                          - field: host_test
+                            name:
+                              en-US: Target Host
+                            type: host
+                            required: true""")
+                .build();
+        defines.add(define);
+
+        when(defineDao.findAll()).thenReturn(defines);
+
+        ObjectStoreDTO<Object> objectStoreDTO = new ObjectStoreDTO<>();
+        objectStoreDTO.setType(ObjectStoreDTO.Type.DATABASE);
+        ObjectStoreConfigChangeEvent objectStoreConfigChangeEvent = new 
ObjectStoreConfigChangeEvent(objectStoreDTO);
+        appService.onObjectStoreConfigChange(objectStoreConfigChangeEvent);
+
+        List<ParamDefine> appParamDefines = 
appService.getAppParamDefines(define.getApp());
+        assertNotNull(appParamDefines);
+        assertTrue(appParamDefines.stream().anyMatch(t -> 
t.getField().equals("host_test")));
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to