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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2c845e12a73 feat: pass -Dtsfile.locale=zh to JVM under with-zh-locale 
build (#17716)
2c845e12a73 is described below

commit 2c845e12a7357ced845f3473df8f17b050adfad0
Author: Jackie Tien <[email protected]>
AuthorDate: Wed May 20 13:47:09 2026 +0800

    feat: pass -Dtsfile.locale=zh to JVM under with-zh-locale build (#17716)
---
 distribution/src/assembly/all.xml                 | 12 ++++++++++++
 distribution/src/assembly/confignode.xml          | 11 ++++++++++-
 integration-test/src/assembly/mpp-test.xml        | 14 +++++++++++++
 iotdb-core/confignode/src/assembly/confignode.xml | 10 ++++++++++
 iotdb-core/datanode/src/assembly/server.xml       | 12 +++++++++++-
 pom.xml                                           |  4 +++-
 scripts/conf/confignode-env.sh                    |  7 +++++++
 scripts/conf/datanode-env.sh                      |  6 ++++++
 scripts/conf/iotdb-common.sh                      |  6 ++++++
 scripts/conf/windows/confignode-env.bat           |  9 +++++++++
 scripts/conf/windows/datanode-env.bat             |  9 +++++++++
 scripts/conf/windows/iotdb-common.bat             | 24 +++++++++++++++++++++++
 12 files changed, 121 insertions(+), 3 deletions(-)

diff --git a/distribution/src/assembly/all.xml 
b/distribution/src/assembly/all.xml
index 1b2e1be054f..c8b583de664 100644
--- a/distribution/src/assembly/all.xml
+++ b/distribution/src/assembly/all.xml
@@ -64,9 +64,21 @@
             <excludes>
                 <exclude>ainode-env.*</exclude>
                 <exclude>**/ainode-env.*</exclude>
+                <exclude>iotdb-common.sh</exclude>
+                <exclude>**/iotdb-common.bat</exclude>
             </excludes>
             <fileMode>0755</fileMode>
         </fileSet>
+        <fileSet>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${project.basedir}/../scripts/conf</directory>
+            <includes>
+                <include>iotdb-common.sh</include>
+                <include>windows/iotdb-common.bat</include>
+            </includes>
+            <filtered>true</filtered>
+            <fileMode>0755</fileMode>
+        </fileSet>
         <fileSet>
             <outputDirectory>sbin</outputDirectory>
             <directory>${project.basedir}/../scripts/sbin</directory>
diff --git a/distribution/src/assembly/confignode.xml 
b/distribution/src/assembly/confignode.xml
index 23665f09a2e..6c3d04558eb 100644
--- a/distribution/src/assembly/confignode.xml
+++ b/distribution/src/assembly/confignode.xml
@@ -49,12 +49,21 @@
             <directory>${project.basedir}/../scripts/conf</directory>
             <outputDirectory>conf</outputDirectory>
             <includes>
-                <include>iotdb-common.*</include>
                 <include>confignode-env.*</include>
                 <include>**/confignode-env.*</include>
             </includes>
             <fileMode>0755</fileMode>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>iotdb-common.sh</include>
+                <include>windows/iotdb-common.bat</include>
+            </includes>
+            <filtered>true</filtered>
+            <fileMode>0755</fileMode>
+        </fileSet>
         <fileSet>
             <directory>${project.basedir}/../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
diff --git a/integration-test/src/assembly/mpp-test.xml 
b/integration-test/src/assembly/mpp-test.xml
index 3915c4593a9..58bb8da0e15 100644
--- a/integration-test/src/assembly/mpp-test.xml
+++ b/integration-test/src/assembly/mpp-test.xml
@@ -49,6 +49,20 @@
         <fileSet>
             <outputDirectory>conf</outputDirectory>
             <directory>${project.basedir}/../scripts/conf</directory>
+            <excludes>
+                <exclude>iotdb-common.sh</exclude>
+                <exclude>**/iotdb-common.bat</exclude>
+            </excludes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${project.basedir}/../scripts/conf</directory>
+            <includes>
+                <include>iotdb-common.sh</include>
+                <include>windows/iotdb-common.bat</include>
+            </includes>
+            <filtered>true</filtered>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
diff --git a/iotdb-core/confignode/src/assembly/confignode.xml 
b/iotdb-core/confignode/src/assembly/confignode.xml
index 0c2e66d8f95..659b42fd14d 100644
--- a/iotdb-core/confignode/src/assembly/confignode.xml
+++ b/iotdb-core/confignode/src/assembly/confignode.xml
@@ -45,6 +45,15 @@
             </includes>
             <fileMode>0755</fileMode>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>windows/iotdb-common.bat</include>
+            </includes>
+            <filtered>true</filtered>
+            <fileMode>0755</fileMode>
+        </fileSet>
         <fileSet>
             <directory>${project.basedir}/../../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
@@ -72,6 +81,7 @@
         <file>
             
<source>${project.basedir}/../../scripts/conf/iotdb-common.sh</source>
             <destName>conf/iotdb-common.sh</destName>
+            <filtered>true</filtered>
         </file>
     </files>
 </assembly>
diff --git a/iotdb-core/datanode/src/assembly/server.xml 
b/iotdb-core/datanode/src/assembly/server.xml
index 0822b9ae568..2e1dab2e584 100644
--- a/iotdb-core/datanode/src/assembly/server.xml
+++ b/iotdb-core/datanode/src/assembly/server.xml
@@ -45,6 +45,15 @@
             </includes>
             <fileMode>0755</fileMode>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>windows/iotdb-common.bat</include>
+            </includes>
+            <filtered>true</filtered>
+            <fileMode>0755</fileMode>
+        </fileSet>
         <fileSet>
             <directory>${project.basedir}/../../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
@@ -70,10 +79,11 @@
             
<source>${project.basedir}/../node-commons/src/assembly/resources/conf/iotdb-system.properties</source>
             <destName>conf/iotdb-system.properties</destName>
         </file>
-        <!-- copy iotdb-common.sh to different script folders-->
+        <!-- copy iotdb-common.sh to different script folders (filtered for 
tsfile.locale.opt) -->
         <file>
             
<source>${project.basedir}/../../scripts/conf/iotdb-common.sh</source>
             <destName>conf/iotdb-common.sh</destName>
+            <filtered>true</filtered>
         </file>
     </files>
 </assembly>
diff --git a/pom.xml b/pom.xml
index c960a8d4476..b2591ac6730 100644
--- a/pom.xml
+++ b/pom.xml
@@ -164,8 +164,9 @@
         <thrift.version>0.14.1</thrift.version>
         <xz.version>1.9</xz.version>
         <zstd-jni.version>1.5.6-3</zstd-jni.version>
-        <tsfile.version>2.3.0-260422-SNAPSHOT</tsfile.version>
+        <tsfile.version>2.3.1-260519-SNAPSHOT</tsfile.version>
         <i18n.locale>en</i18n.locale>
+        <tsfile.locale.opt/>
     </properties>
     <!--
     if we claim dependencies in dependencyManagement, then we do not claim
@@ -1984,6 +1985,7 @@
             <id>with-zh-locale</id>
             <properties>
                 <i18n.locale>zh</i18n.locale>
+                <tsfile.locale.opt>-Dtsfile.locale=zh</tsfile.locale.opt>
             </properties>
         </profile>
     </profiles>
diff --git a/scripts/conf/confignode-env.sh b/scripts/conf/confignode-env.sh
index 3b2117209fc..6cf29cb32da 100644
--- a/scripts/conf/confignode-env.sh
+++ b/scripts/conf/confignode-env.sh
@@ -321,6 +321,13 @@ if [[ ! "$CONFIGNODE_JMX_OPTS" =~ -XX:MaxDirectMemorySize 
]]; then CONFIGNODE_JM
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS 
-Djdk.nio.maxCachedBufferSize=${MAX_CACHED_BUFFER_SIZE}"
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -XX:+CrashOnOutOfMemoryError"
 CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -Dsun.jnu.encoding=UTF-8 
-Dfile.encoding=UTF-8"
+
+# Append tsfile locale option populated by Maven at package time
+# (see conf/iotdb-common.sh; empty in default build, "-Dtsfile.locale=zh" 
under with-zh-locale).
+if [ -n "$TSFILE_LOCALE_JVM_OPT" ]; then
+    CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS $TSFILE_LOCALE_JVM_OPT"
+fi
+
 # if you want to dump the heap memory while OOM happening, you can use the 
following command, remember to replace 
${heap_dump_dir}/confignode_heapdump.hprof with your own file path and the 
folder where this file is located needs to be created in advance
 #CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=${heap_dump_dir}/confignode_heapdump.hprof"
 
diff --git a/scripts/conf/datanode-env.sh b/scripts/conf/datanode-env.sh
index f0f7da3e79b..f600066a848 100755
--- a/scripts/conf/datanode-env.sh
+++ b/scripts/conf/datanode-env.sh
@@ -339,6 +339,12 @@ IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS 
-XX:SafepointTimeoutDelay=1000"
 IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:+SafepointTimeout"
 IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"
 
+# Append tsfile locale option populated by Maven at package time
+# (see conf/iotdb-common.sh; empty in default build, "-Dtsfile.locale=zh" 
under with-zh-locale).
+if [ -n "$TSFILE_LOCALE_JVM_OPT" ]; then
+    IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS $TSFILE_LOCALE_JVM_OPT"
+fi
+
 # option below tries to optimize safepoint stw time for large counted loop.
 # NOTE: it may have an impact on JIT's black-box optimization.
 # IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:+UseCountedLoopSafepoints"
diff --git a/scripts/conf/iotdb-common.sh b/scripts/conf/iotdb-common.sh
index 0236fef3f41..057622f53f0 100755
--- a/scripts/conf/iotdb-common.sh
+++ b/scripts/conf/iotdb-common.sh
@@ -18,6 +18,12 @@
 # under the License.
 #
 
+# JVM option for selecting tsfile's runtime locale (log/exception messages).
+# Filtered by Maven at package time:
+#   - Default build: empty (English).
+#   - `with-zh-locale` profile: "-Dtsfile.locale=zh".
+TSFILE_LOCALE_JVM_OPT="@tsfile.locale.opt@"
+
 
 # this function is for parsing the variables like "A=B" in  `start-server.sh 
-D A=B`
 # The command just parse IOTDB-prefixed variables and ignore all other 
variables
diff --git a/scripts/conf/windows/confignode-env.bat 
b/scripts/conf/windows/confignode-env.bat
index 51b0f8de9cc..baeed004667 100644
--- a/scripts/conf/windows/confignode-env.bat
+++ b/scripts/conf/windows/confignode-env.bat
@@ -152,5 +152,14 @@ IF "%JAVA_VERSION%" == "8" (
      --add-opens=java.base/java.net=ALL-UNNAMED
 )
 
+@REM Apply tsfile locale option populated by Maven at package time
+@REM (see conf\windows\iotdb-common.bat; empty in default build, 
-Dtsfile.locale=zh under with-zh-locale).
+IF EXIST "%CONFIGNODE_CONF%\windows\iotdb-common.bat" (
+    CALL "%CONFIGNODE_CONF%\windows\iotdb-common.bat"
+    IF NOT "%TSFILE_LOCALE_JVM_OPT%"=="" (
+        set CONFIGNODE_JMX_OPTS=%CONFIGNODE_JMX_OPTS% %TSFILE_LOCALE_JVM_OPT%
+    )
+)
+
 echo ConfigNode on heap memory size = %ON_HEAP_MEMORY%B, off heap memory size 
= %OFF_HEAP_MEMORY%B
 echo If you want to change this configuration, please check 
conf/windows/confignode-env.bat.
diff --git a/scripts/conf/windows/datanode-env.bat 
b/scripts/conf/windows/datanode-env.bat
index 25fe1a13647..ccaabf24bec 100644
--- a/scripts/conf/windows/datanode-env.bat
+++ b/scripts/conf/windows/datanode-env.bat
@@ -183,5 +183,14 @@ IF "%JAVA_VERSION%" == "8" (
      --add-opens=java.base/java.net=ALL-UNNAMED
 )
 
+@REM Apply tsfile locale option populated by Maven at package time
+@REM (see conf\windows\iotdb-common.bat; empty in default build, 
-Dtsfile.locale=zh under with-zh-locale).
+IF EXIST "%IOTDB_CONF%\windows\iotdb-common.bat" (
+    CALL "%IOTDB_CONF%\windows\iotdb-common.bat"
+    IF NOT "%TSFILE_LOCALE_JVM_OPT%"=="" (
+        set IOTDB_JMX_OPTS=%IOTDB_JMX_OPTS% %TSFILE_LOCALE_JVM_OPT%
+    )
+)
+
 echo DataNode on heap memory size = %ON_HEAP_MEMORY%B, off heap memory size = 
%OFF_HEAP_MEMORY%B
 echo If you want to change this configuration, please check 
conf/windows/datanode-env.bat.
diff --git a/scripts/conf/windows/iotdb-common.bat 
b/scripts/conf/windows/iotdb-common.bat
new file mode 100644
index 00000000000..f8977d76762
--- /dev/null
+++ b/scripts/conf/windows/iotdb-common.bat
@@ -0,0 +1,24 @@
+@REM
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM     http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM
+
+@REM JVM option for selecting tsfile's runtime locale (log/exception messages).
+@REM This file is filtered by Maven at package time:
+@REM   - Default build: TSFILE_LOCALE_JVM_OPT is empty (English).
+@REM   - `with-zh-locale` profile: TSFILE_LOCALE_JVM_OPT=-Dtsfile.locale=zh.
+set [email protected]@

Reply via email to