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]