This is an automated email from the ASF dual-hosted git repository.
luchunliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 5deaf63913 [INLONG-12003][Agent] Added the agent_ext.properties
configuration file loading to prevent personalized configurations from being
lost when the agent.properties configuration file is overwritten during
upgrades (#12004)
5deaf63913 is described below
commit 5deaf63913f06969b3da19b5c6b61a10720d3d28
Author: ChunLiang Lu <[email protected]>
AuthorDate: Mon Sep 15 16:17:59 2025 +0800
[INLONG-12003][Agent] Added the agent_ext.properties configuration file
loading to prevent personalized configurations from being lost when the
agent.properties configuration file is overwritten during upgrades (#12004)
* [INLONG-12003][Agent] Added the agent_ext.properties configuration file
loading to prevent personalized configurations from being lost when the
agent.properties configuration file is overwritten during upgrades
* [INLONG-12003][Agent] Added the agent_ext.properties configuration file
loading to prevent personalized configurations from being lost when the
agent.properties configuration file is overwritten during upgrades
---
.../inlong/agent/conf/AgentConfiguration.java | 24 ++++++++++++++++++++--
.../org/apache/inlong/agent/core/AgentManager.java | 11 +++-------
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git
a/inlong-agent/agent-common/src/main/java/org/apache/inlong/agent/conf/AgentConfiguration.java
b/inlong-agent/agent-common/src/main/java/org/apache/inlong/agent/conf/AgentConfiguration.java
index e4d7d1a485..dd8e7ee976 100644
---
a/inlong-agent/agent-common/src/main/java/org/apache/inlong/agent/conf/AgentConfiguration.java
+++
b/inlong-agent/agent-common/src/main/java/org/apache/inlong/agent/conf/AgentConfiguration.java
@@ -39,8 +39,9 @@ public class AgentConfiguration extends AbstractConfiguration
{
private static final Logger LOGGER =
LoggerFactory.getLogger(AgentConfiguration.class);
- public static final String DEFAULT_CONFIG_FILE = "agent.properties";
- public static final String TMP_CONFIG_FILE = ".tmp.agent.properties";
+ private static final String DEFAULT_CONFIG_FILE = "agent.properties";
+ private static final String EXT_CONFIG_FILE = "agent_ext.properties";
+ private static final String TMP_CONFIG_FILE = ".tmp.agent.properties";
private static final ArrayList<String> LOCAL_RESOURCES = new ArrayList<>();
@@ -49,6 +50,7 @@ public class AgentConfiguration extends AbstractConfiguration
{
static {
LOCAL_RESOURCES.add(DEFAULT_CONFIG_FILE);
+ LOCAL_RESOURCES.add(EXT_CONFIG_FILE);
}
/**
@@ -112,6 +114,24 @@ public class AgentConfiguration extends
AbstractConfiguration {
}
}
+ /**
+ * check max last modified time from local files.
+ */
+ public long maxLastModifiedTime() {
+ long maxLastModifiedTime = 0;
+ for (String fileName : LOCAL_RESOURCES) {
+ File file = new File(this.getConfigLocation(fileName).getFile());
+ if (!file.exists()) {
+ continue;
+ }
+ long fileLastModified = file.lastModified();
+ if (fileLastModified > maxLastModifiedTime) {
+ maxLastModifiedTime = fileLastModified;
+ }
+ }
+ return maxLastModifiedTime;
+ }
+
/**
* refresh config from local files.
* Note: there is a concurrency issue when hot-updating and fetching
configuration
diff --git
a/inlong-agent/agent-core/src/main/java/org/apache/inlong/agent/core/AgentManager.java
b/inlong-agent/agent-core/src/main/java/org/apache/inlong/agent/core/AgentManager.java
index b00eebf869..a675cc936a 100755
---
a/inlong-agent/agent-core/src/main/java/org/apache/inlong/agent/core/AgentManager.java
+++
b/inlong-agent/agent-core/src/main/java/org/apache/inlong/agent/core/AgentManager.java
@@ -27,7 +27,6 @@ import org.apache.inlong.common.pojo.agent.AgentConfigInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
import java.lang.reflect.Constructor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -92,14 +91,10 @@ public class AgentManager extends AbstractDaemon {
while (true) {
try {
Thread.sleep(10 * 1000); // 10s check
- File file = new File(
-
conf.getConfigLocation(AgentConfiguration.DEFAULT_CONFIG_FILE).getFile());
- if (!file.exists()) {
- continue;
- }
- if (file.lastModified() > lastModifiedTime) {
+ long maxLastModifiedTime = conf.maxLastModifiedTime();
+ if (maxLastModifiedTime > lastModifiedTime) {
conf.reloadFromLocalPropertiesFile();
- lastModifiedTime = file.lastModified();
+ lastModifiedTime = maxLastModifiedTime;
}
} catch (InterruptedException e) {
LOGGER.error("Interrupted when flush agent conf.", e);