This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch support_jdk25 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d94c6190c498c81337c351d71c801d3ffd0d519e Author: HTHou <[email protected]> AuthorDate: Fri Jan 30 10:22:14 2026 +0800 Support build project by jdk25 --- README.md | 4 +- README_ZH.md | 4 +- .../impl/region/AddRegionPeerProcedure.java | 2 +- .../sink/protocol/opcda/OpcDaServerHandle.java | 4 +- .../relational/aggregation/AccumulatorFactory.java | 84 +++++++++++----------- .../execution/schedule/DriverScheduler.java | 2 +- .../plan/relational/planner/SubqueryPlanner.java | 2 +- .../relational/sql/util/ExpressionFormatter.java | 6 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 2 +- .../iotdb/db/utils/TimestampPrecisionUtils.java | 4 +- .../iotdb/metrics/metricsets/jvm/JvmGcMetrics.java | 12 ++-- pom.xml | 6 +- 12 files changed, 66 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 09ae373aba9..6f6526c53df 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@    - + [](https://iotdb.apache.org/) [](http://search.maven.org/#search|gav|1|g:"org.apache.iotdb") [](https://gitpod.io/#https://github.com/apache/iotdb) @@ -89,7 +89,7 @@ This short guide will walk you through the basic process of using IoTDB. For a m To use IoTDB, you need to have: -1. Java >= 1.8 (1.8, 11 to 17 are verified. Please make sure the environment path has been set accordingly). +1. Java >= 1.8 (1.8 to 25 are verified. Please make sure the environment path has been set accordingly). 2. Maven >= 3.6 (If you want to compile and install IoTDB from source code). 3. Set the max open files num as 65535 to avoid the "too many open files" error. 4. (Optional) Set the somaxconn as 65535 to avoid "connection reset" error when the system is under high load. diff --git a/README_ZH.md b/README_ZH.md index c30fe7501e3..f53160db90d 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -28,7 +28,7 @@    - + [](https://lgtm.com/projects/g/apache/iotdb/context:java) [](https://iotdb.apache.org/) [](http://search.maven.org/#search|gav|1|g:"org.apache.iotdb") @@ -86,7 +86,7 @@ IoTDB的主要特点如下: ## 环境准备 要使用IoTDB,您需要: -1. Java >= 1.8 (目前 1.8、11 到 17 已经被验证可用。请确保环变量境路径已正确设置)。 +1. Java >= 1.8 (目前 1.8 到 25 已经被验证可用。请确保环变量境路径已正确设置)。 2. Maven >= 3.6 (如果希望从源代码编译和安装IoTDB)。 3. 设置 max open files 为 65535,以避免"too many open files"错误。 4. (可选) 将 somaxconn 设置为 65535 以避免系统在高负载时出现 "connection reset" 错误。 diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java index 307fcc8f99a..f1907edf754 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java @@ -112,7 +112,7 @@ public class AddRegionPeerProcedure extends RegionOperationProcedure<AddRegionPe TRegionMigrateResult result = handler.waitTaskFinish(this.getProcId(), coordinator); switch (result.getTaskStatus()) { case TASK_NOT_EXIST: - // coordinator crashed and lost its task table + // coordinator crashed and lost its task table case FAIL: // maybe some DataNode crash return warnAndRollBackAndNoMoreState( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcda/OpcDaServerHandle.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcda/OpcDaServerHandle.java index 1ba0a8841d2..816d757391b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcda/OpcDaServerHandle.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcda/OpcDaServerHandle.java @@ -315,8 +315,8 @@ public class OpcDaServerHandle implements Closeable { return Variant.VT_R8; case TEXT: case STRING: - // Note that "Variant" does not support "VT_BLOB" data, and not all the DA server - // support this, thus we use "VT_BSTR" to substitute + // Note that "Variant" does not support "VT_BLOB" data, and not all the DA server + // support this, thus we use "VT_BSTR" to substitute case BLOB: case OBJECT: return Variant.VT_BSTR; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java index 45617de31d1..e79a4acab8e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java @@ -439,10 +439,10 @@ public class AccumulatorFactory { switch (aggregationType) { case MAX_BY: checkState(inputDataTypes.size() == 2, "Wrong inputDataTypes size."); - // return new MaxByAccumulator(inputDataTypes.get(0), inputDataTypes.get(1)); + // return new MaxByAccumulator(inputDataTypes.get(0), inputDataTypes.get(1)); case MIN_BY: checkState(inputDataTypes.size() == 2, "Wrong inputDataTypes size."); - // return new MinByAccumulator(inputDataTypes.get(0), inputDataTypes.get(1)); + // return new MinByAccumulator(inputDataTypes.get(0), inputDataTypes.get(1)); default: throw new IllegalArgumentException("Invalid Aggregation function: " + aggregationType); } @@ -459,46 +459,46 @@ public class AccumulatorFactory { return new CountAccumulator(); case AVG: return new AvgAccumulator(tsDataType); - /*case SUM: - return new SumAccumulator(tsDataType); - case EXTREME: - return new ExtremeAccumulator(tsDataType); - case MAX_TIME: - return ascending ? new MaxTimeAccumulator() : new MaxTimeDescAccumulator(); - case MIN_TIME: - return ascending ? new MinTimeAccumulator() : new MinTimeDescAccumulator(); - case MAX_VALUE: - return new MaxValueAccumulator(tsDataType); - case MIN_VALUE: - return new MinValueAccumulator(tsDataType); - case LAST_VALUE: - return ascending - ? new LastValueAccumulator(tsDataType) - : new LastValueDescAccumulator(tsDataType); - case FIRST_VALUE: - return ascending - ? new FirstValueAccumulator(tsDataType) - : new FirstValueDescAccumulator(tsDataType); - case COUNT_IF: - return new CountIfAccumulator( - initKeepEvaluator(inputExpressions.get(1)), - Boolean.parseBoolean(inputAttributes.getOrDefault("ignoreNull", "true"))); - case TIME_DURATION: - return new TimeDurationAccumulator(); - case MODE: - return createModeAccumulator(tsDataType); - case COUNT_TIME: - return new CountTimeAccumulator(); - case STDDEV: - case STDDEV_SAMP: - return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.STDDEV_SAMP); - case STDDEV_POP: - return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.STDDEV_POP); - case VARIANCE: - case VAR_SAMP: - return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.VAR_SAMP); - case VAR_POP: - return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.VAR_POP);*/ + /*case SUM: + return new SumAccumulator(tsDataType); + case EXTREME: + return new ExtremeAccumulator(tsDataType); + case MAX_TIME: + return ascending ? new MaxTimeAccumulator() : new MaxTimeDescAccumulator(); + case MIN_TIME: + return ascending ? new MinTimeAccumulator() : new MinTimeDescAccumulator(); + case MAX_VALUE: + return new MaxValueAccumulator(tsDataType); + case MIN_VALUE: + return new MinValueAccumulator(tsDataType); + case LAST_VALUE: + return ascending + ? new LastValueAccumulator(tsDataType) + : new LastValueDescAccumulator(tsDataType); + case FIRST_VALUE: + return ascending + ? new FirstValueAccumulator(tsDataType) + : new FirstValueDescAccumulator(tsDataType); + case COUNT_IF: + return new CountIfAccumulator( + initKeepEvaluator(inputExpressions.get(1)), + Boolean.parseBoolean(inputAttributes.getOrDefault("ignoreNull", "true"))); + case TIME_DURATION: + return new TimeDurationAccumulator(); + case MODE: + return createModeAccumulator(tsDataType); + case COUNT_TIME: + return new CountTimeAccumulator(); + case STDDEV: + case STDDEV_SAMP: + return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.STDDEV_SAMP); + case STDDEV_POP: + return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.STDDEV_POP); + case VARIANCE: + case VAR_SAMP: + return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.VAR_SAMP); + case VAR_POP: + return new VarianceAccumulator(tsDataType, VarianceAccumulator.VarianceType.VAR_POP);*/ default: throw new IllegalArgumentException("Invalid Aggregation function: " + aggregationType); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java index a0780622367..811b2adec16 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java @@ -340,7 +340,7 @@ public class DriverScheduler implements IDriverScheduler, IService { task.lock(); DriverTaskStatus status = task.getStatus(); switch (status) { - // If it has been aborted, return directly + // If it has been aborted, return directly case ABORTED: return; case READY: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java index 1484a47d5af..2226bb02179 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java @@ -461,7 +461,7 @@ class SubqueryPlanner { .getTranslations() .withAdditionalMappings(mapAll(cluster, subPlan.getScope(), output)), subPlan.getRoot()); - // Cannot be used with quantified comparison + // Cannot be used with quantified comparison case IS_DISTINCT_FROM: default: throw new IllegalArgumentException( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java index 9f1afa6a5f3..e34af64683e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java @@ -398,9 +398,9 @@ public final class ExpressionFormatter { String value = process(node.getValue(), context); switch (node.getSign()) { - // Unary is ambiguous with respect to negative numbers. "-1" parses as a number, but - // "-(1)" parses as "unaryMinus(number)" - // The parentheses are needed to ensure the parsing roundtrips properly. + // Unary is ambiguous with respect to negative numbers. "-1" parses as a number, but + // "-(1)" parses as "unaryMinus(number)" + // The parentheses are needed to ensure the parsing roundtrips properly. case MINUS: return "-(" + value + ")"; case PLUS: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java index 2b3818c7be4..e1d1aa59849 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java @@ -122,7 +122,7 @@ public class SchemaUtils { case SqlConstant.VAR_POP: case SqlConstant.VAR_SAMP: return TSDataType.DOUBLE; - // Partial aggregation names + // Partial aggregation names case SqlConstant.STDDEV + "_partial": case SqlConstant.STDDEV_POP + "_partial": case SqlConstant.STDDEV_SAMP + "_partial": diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java index 14c22bf008e..1dee0a9738f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java @@ -49,7 +49,7 @@ public class TimestampPrecisionUtils { convertToCurrPrecisionFunction = TimeUnit.NANOSECONDS::convert; currPrecision = TimeUnit.NANOSECONDS; break; - // this case will never reach + // this case will never reach default: throw new UnsupportedOperationException( "not supported time_precision: " + TIMESTAMP_PRECISION); @@ -91,7 +91,7 @@ public class TimestampPrecisionUtils { TIMESTAMP_PRECISION, time)); } break; - // Long.MaxValue is 19 digits, therefore no problem when the precision is ns. + // Long.MaxValue is 19 digits, therefore no problem when the precision is ns. case "ns": default: break; diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java index 3aeaa4e65bb..a707afa83b0 100644 --- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java +++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java @@ -74,22 +74,22 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable { private static boolean isPartiallyConcurrentGC(GarbageCollectorMXBean gc) { switch (gc.getName()) { - // First two are from the 'serial' collector which are not concurrent, obviously. + // First two are from the 'serial' collector which are not concurrent, obviously. case "Copy": case "MarkSweepCompact": - // The following 4 GCs do not contain concurrent execution phase. + // The following 4 GCs do not contain concurrent execution phase. case "PS MarkSweep": case "PS Scavenge": case "G1 Young Generation": case "ParNew": return false; - // The following 2 GCs' execution process consists of concurrent phase, which means they can - // run simultaneously with the user thread in some phases. + // The following 2 GCs' execution process consists of concurrent phase, which means they can + // run simultaneously with the user thread in some phases. - // Concurrent mark and concurrent sweep + // Concurrent mark and concurrent sweep case "ConcurrentMarkSweep": - // Concurrent mark + // Concurrent mark case "G1 Old Generation": return true; default: diff --git a/pom.xml b/pom.xml index a86b5cfc062..f1e7ed96514 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ <findbugs.jsr305.version>3.0.2</findbugs.jsr305.version> <fusesource-mqtt-client.version>1.16</fusesource-mqtt-client.version> <!-- JDK1.8 only support google java format 1.7--> - <google.java.format.version>1.22.0</google.java.format.version> + <google.java.format.version>1.28.0</google.java.format.version> <gson.version>2.13.1</gson.version> <guava.version>32.1.2-jre</guava.version> <!-- This was the last version to support Java 8 --> @@ -1569,9 +1569,9 @@ </profile> <!-- Current version of spotless cannot support JDK11 below --> <profile> - <id>.java-11-below</id> + <id>.java-17-below</id> <activation> - <jdk>(,11]</jdk> + <jdk>(,17)</jdk> </activation> <properties> <!-- This was the last version to support Java 8, Just for run -->
