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);

Reply via email to