This is an automated email from the ASF dual-hosted git repository.
HTHou 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 72e72dd2c4e Upgrade minimum JDK to 17 and migrate JavaX to Jakarta
(#17859)
72e72dd2c4e is described below
commit 72e72dd2c4e37a9f15b3d01865c40345622fed9f
Author: Haonan <[email protected]>
AuthorDate: Fri Jun 12 10:30:52 2026 +0800
Upgrade minimum JDK to 17 and migrate JavaX to Jakarta (#17859)
---
.github/workflows/compile-check.yml | 67 -----
.github/workflows/daily-it.yml | 4 +-
.github/workflows/daily-ut.yml | 15 +-
.github/workflows/multi-language-client.yml | 15 +
CLAUDE.md | 2 +-
CONTRIBUTING.md | 2 +-
Jenkinsfile | 2 +-
LICENSE-binary | 43 ++-
README.md | 4 +-
README_ZH.md | 4 +-
dependencies.json | 318 +++++++++++----------
example/jdbc/pom.xml | 4 +-
example/pipe-count-point-processor/pom.xml | 4 +-
example/pom.xml | 4 +-
external-service-impl/mqtt/pom.xml | 4 +-
external-service-impl/pom.xml | 4 +-
external-service-impl/rest-openapi/pom.xml | 28 +-
external-service-impl/rest/pom.xml | 20 +-
.../java/org/apache/iotdb/rest/RestService.java | 8 +-
.../rest/protocol/filter/ApiOriginFilter.java | 15 +-
.../rest/protocol/filter/AuthorizationFilter.java | 36 ++-
.../rest/protocol/filter/BasicSecurityContext.java | 2 +-
.../protocol/handler/AuthorizationHandler.java | 4 +-
.../rest/protocol/impl/PingApiServiceImpl.java | 4 +-
.../table/v1/handler/ExceptionHandler.java | 2 +-
.../table/v1/handler/QueryDataSetHandler.java | 2 +-
.../protocol/table/v1/impl/RestApiServiceImpl.java | 4 +-
.../rest/protocol/v1/handler/ExceptionHandler.java | 2 +-
.../protocol/v1/handler/QueryDataSetHandler.java | 2 +-
.../protocol/v1/impl/GrafanaApiServiceImpl.java | 4 +-
.../rest/protocol/v1/impl/RestApiServiceImpl.java | 4 +-
.../rest/protocol/v2/handler/ExceptionHandler.java | 2 +-
.../rest/protocol/v2/handler/FastLastHandler.java | 2 +-
.../protocol/v2/handler/QueryDataSetHandler.java | 3 +-
.../protocol/v2/impl/GrafanaApiServiceImpl.java | 4 +-
.../rest/protocol/v2/impl/RestApiServiceImpl.java | 4 +-
.../iotdb/it/env/cluster/config/MppBaseConfig.java | 3 +-
.../it/IoTDBSyntaxConventionStringLiteralIT.java | 2 +-
.../db/it/schema/IoTDBAlterTimeSeriesTypeIT.java | 2 +-
.../it/schema/IoTDBAlterColumnTypeIT.java | 2 +-
iotdb-client/client-cpp/README.md | 5 +-
iotdb-client/client-cpp/pom.xml | 8 +-
iotdb-client/jdbc/README.md | 4 +-
.../src/test/resources/iotdb-common.properties | 2 +-
.../consensus/response/cq/ShowCQResp.java | 2 +-
.../externalservice/ShowExternalServiceResp.java | 2 +-
.../schema/ClusterSchemaQuotaStatistics.java | 2 +-
.../mnode/container/ConfigMNodeContainer.java | 2 +-
iotdb-core/consensus/pom.xml | 4 +-
iotdb-core/datanode/pom.xml | 4 +-
.../org/apache/iotdb/db/audit/DNAuditLogger.java | 2 +-
.../iotdb/db/conf/rest/IoTDBRestServiceConfig.java | 2 +-
.../db/pipe/event/common/PipeInsertionEvent.java | 2 +-
.../scan/AlignedSinglePageWholeChunkReader.java | 2 +-
.../parser/scan/SinglePageWholeChunkReader.java | 2 +-
.../resource/memory/PipeDynamicMemoryBlock.java | 2 +-
.../execution/schedule/task/DriverTaskId.java | 2 +-
.../plan/execution/config/ConfigExecution.java | 2 +-
.../plan/expression/unary/InExpression.java | 2 +-
.../planner/DataNodeTableOperatorGenerator.java | 2 +-
.../metadata/read/LevelTimeSeriesCountNode.java | 2 +-
.../node/metadata/read/TimeSeriesCountNode.java | 2 +-
.../metadata/read/TimeSeriesSchemaScanNode.java | 2 +-
.../plan/relational/sql/ast/PipeEnriched.java | 2 +-
.../logfile/FakeCRC32Deserializer.java | 3 +-
.../schemaregion/logfile/SchemaLogReader.java | 2 +-
.../mem/mnode/container/MemMNodeContainer.java | 2 +-
.../mnode/container/CachedMNodeContainer.java | 3 +-
.../compaction/schedule/CompactionWorker.java | 2 +-
.../src/test/resources/iotdb-common.properties | 2 +-
.../src/test/resources/iotdb-system.properties | 2 +-
.../conf/iotdb-system.properties.template | 2 +-
library-udf/pom.xml | 4 +-
pom.xml | 117 ++++----
scripts/conf/confignode-env.sh | 61 ++--
scripts/conf/datanode-env.sh | 70 ++---
scripts/sbin/start-cli.sh | 13 +-
scripts/sbin/windows/start-confignode.bat | 20 +-
scripts/sbin/windows/start-datanode.bat | 19 +-
scripts/tools/ops/health_check.sh | 2 +-
scripts/tools/windows/ops/health_check.bat | 4 +-
81 files changed, 489 insertions(+), 559 deletions(-)
diff --git a/.github/workflows/compile-check.yml
b/.github/workflows/compile-check.yml
deleted file mode 100644
index 196b2169e92..00000000000
--- a/.github/workflows/compile-check.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# This workflow will compile IoTDB under jdk8 to check for compatibility
issues
-
-name: Compile Check
-
-on:
- push:
- branches:
- - master
- - "rel/*"
- - "rc/*"
- paths-ignore:
- - "docs/**"
- - "site/**"
- - "iotdb-client/client-cpp/**"
- - ".github/workflows/client-cpp-package.yml"
- - ".github/scripts/package-client-cpp-*.sh"
- - ".github/workflows/multi-language-client.yml"
- pull_request:
- branches:
- - master
- - "rel/*"
- - "rc/*"
- - "force_ci/**"
- paths-ignore:
- - "docs/**"
- - "site/**"
- - "iotdb-client/client-cpp/**"
- - ".github/workflows/client-cpp-package.yml"
- - ".github/scripts/package-client-cpp-*.sh"
- - ".github/workflows/multi-language-client.yml"
- # allow manually run the action:
- workflow_dispatch:
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-env:
- MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false
-Dmaven.wagon.http.retryHandler.class=standard
-Dmaven.wagon.http.retryHandler.count=3
- MAVEN_ARGS: --batch-mode --no-transfer-progress
- DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
-
-jobs:
- compile-check:
- strategy:
- fail-fast: false
- matrix:
- java: [8]
- os: [ubuntu-latest]
- runs-on: ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v5
- - name: Set up JDK ${{ matrix.java }}
- uses: actions/setup-java@v5
- with:
- distribution: corretto
- java-version: ${{ matrix.java }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Compiler Test
- shell: bash
- run: |
- mvn clean package -P with-integration-tests -DskipTests -ntp
- - name: Compiler Test (Chinese i18n)
- shell: bash
- run: |
- mvn clean package -P with-integration-tests,with-zh-locale
-DskipTests -ntp
diff --git a/.github/workflows/daily-it.yml b/.github/workflows/daily-it.yml
index 54b502bcfa5..745ffbd0769 100644
--- a/.github/workflows/daily-it.yml
+++ b/.github/workflows/daily-it.yml
@@ -20,7 +20,7 @@ jobs:
fail-fast: false
max-parallel: 20
matrix:
- java: [8, 17]
+ java: [17]
runs-on: [self-hosted, iotdb]
# group: self-hosted
# labels: iotdb
@@ -54,7 +54,7 @@ jobs:
fail-fast: false
max-parallel: 15
matrix:
- java: [8, 17]
+ java: [17]
runs-on: [self-hosted, iotdb]
# group: self-hosted
# labels: iotdb
diff --git a/.github/workflows/daily-ut.yml b/.github/workflows/daily-ut.yml
index 348276962d2..e88b4830975 100644
--- a/.github/workflows/daily-ut.yml
+++ b/.github/workflows/daily-ut.yml
@@ -13,6 +13,7 @@ env:
MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false
-Dmaven.wagon.http.retryHandler.class=standard
-Dmaven.wagon.http.retryHandler.count=3
MAVEN_ARGS: --batch-mode --no-transfer-progress
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+ JDK_VERSION: 17
jobs:
unit-test:
@@ -20,25 +21,17 @@ jobs:
fail-fast: false
max-parallel: 15
matrix:
- java: [8]
- os: [ubuntu-latest, windows-latest]
+ os: [ubuntu-latest, macos-latest, windows-latest]
it_task: ["others", "datanode"]
- include:
- - java: 17
- os: macos-latest
- it_task: "datanode"
- - java: 17
- os: macos-latest
- it_task: "others"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- - name: Set up JDK ${{ matrix.java }}
+ - name: Set up JDK ${{ env.JDK_VERSION }}
uses: actions/setup-java@v5
with:
distribution: corretto
- java-version: ${{ matrix.java }}
+ java-version: ${{ env.JDK_VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Maven packages
diff --git a/.github/workflows/multi-language-client.yml
b/.github/workflows/multi-language-client.yml
index d40168e556e..50840ca75ec 100644
--- a/.github/workflows/multi-language-client.yml
+++ b/.github/workflows/multi-language-client.yml
@@ -94,6 +94,11 @@ jobs:
steps:
- uses: actions/checkout@v5
+ - name: Set up JDK 17
+ uses: actions/setup-java@v5
+ with:
+ distribution: corretto
+ java-version: 17
- name: Install CPP Dependencies (Ubuntu)
if: runner.os == 'Linux'
shell: bash
@@ -187,6 +192,11 @@ jobs:
with:
token: ${{secrets.GITHUB_TOKEN}}
submodules: recursive
+ - name: Set up JDK 17
+ uses: actions/setup-java@v5
+ with:
+ distribution: corretto
+ java-version: 17
- name: Cache Maven packages
uses: actions/cache@v5
with:
@@ -218,6 +228,11 @@ jobs:
with:
python-version: ${{ matrix.python }}
- uses: actions/checkout@v5
+ - name: Set up JDK 17
+ uses: actions/setup-java@v5
+ with:
+ distribution: corretto
+ java-version: 17
- name: Cache Maven packages
uses: actions/cache@v5
with:
diff --git a/CLAUDE.md b/CLAUDE.md
index 7839d584b32..2b57f61c07f 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -103,7 +103,7 @@ To run integration tests from IntelliJ: enable the
`with-integration-tests` prof
- **Apache License header**: Every new file committed to the repository MUST
include the Apache License 2.0 header. Use the comment syntax appropriate for
the file type (e.g., `<!-- -->` for `.md`, `/* */` for `.java`, `#` for
`.properties`/`.py`). JSON files are exempt (no comment syntax). Refer to
existing files in the repo for the exact format.
- **Spotless** with Google Java Format (GOOGLE style). Import order:
`org.apache.iotdb`, blank, `javax`, `java`, static.
- **Checkstyle** is also configured (see `checkstyle.xml` at project root).
-- Java source/target level is 1.8 (compiled with `maven.compiler.release=8` on
JDK 9+).
+- Java source/target level is 17 (compiled with `maven.compiler.release=17` on
JDK 17+).
## Architecture
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f91968bdf3a..dfd0a71faef 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -111,7 +111,7 @@
plugin](https://github.com/diffplug/spotless/tree/main/plugin-maven) together wi
- Formatter: `clang-format` only
- Version: pinned as `clang.format.version` in the root `pom.xml` (currently
`17.0.6`, aligned with Apache TsFile); CI installs LLVM/clang-format so the
default `clang-format` on the runner matches that version
-- Entrypoint: Maven Spotless; the `clangFormat` configuration is attached
under the `spotless-cpp` profile in the C++ modules and activates only on **JDK
11+**, so run `spotless:check` / `spotless:apply` for C++ with JDK 11 or newer
(CI does). JDK 8 builds elsewhere in the reactor do not load that Spotless
fragment.
+- Entrypoint: Maven Spotless; the `clangFormat` configuration is attached
under the `spotless-cpp` profile in the C++ modules and activates on the
repository baseline, **JDK 17+**, so run `spotless:check` / `spotless:apply`
for C++ with JDK 17 or newer (CI does).
Check only:
diff --git a/Jenkinsfile b/Jenkinsfile
index db45da55e18..f6f659dc41b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -34,7 +34,7 @@ pipeline {
tools {
maven 'maven_3_latest'
- jdk 'jdk_11_latest'
+ jdk 'jdk_17_latest'
}
options {
diff --git a/LICENSE-binary b/LICENSE-binary
index 145d60d9498..a55f3987249 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -221,15 +221,24 @@ com.google.guava.guava:32.1.2-jre
com.fasterxml.jackson.core:jackson-annotations:2.16.2
com.fasterxml.jackson.core:jackson-core:2.16.2
com.fasterxml.jackson.core:jackson-databind:2.16.2
-jakarta.inject:jakarta.inject:2.6.1
+com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base:2.18.6
+com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider:2.18.6
+com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.18.6
+io.swagger.core.v3:swagger-annotations-jakarta:2.2.50
+io.swagger.core.v3:swagger-core-jakarta:2.2.50
+io.swagger.core.v3:swagger-integration-jakarta:2.2.50
+io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.50
+io.swagger.core.v3:swagger-models-jakarta:2.2.50
+jakarta.inject:jakarta.inject-api:2.0.1
at.yawk.lz4:lz4-java:1.10.0
com.github.ben-manes.caffeine:caffeine:2.9.3
-org.eclipse.jetty:jetty-http:9.4.58.v20250814
-org.eclipse.jetty:jetty-io:9.4.58.v20250814
-org.eclipse.jetty:jetty-security:9.4.58.v20250814
-org.eclipse.jetty:jetty-server:9.4.58.v20250814
-org.eclipse.jetty:jetty-servlet:9.4.58.v20250814
-org.eclipse.jetty:jetty-util:9.4.58.v20250814
+org.eclipse.jetty:jetty-http:12.0.36
+org.eclipse.jetty:jetty-io:12.0.36
+org.eclipse.jetty:jetty-security:12.0.36
+org.eclipse.jetty:jetty-server:12.0.36
+org.eclipse.jetty:jetty-session:12.0.36
+org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.36
+org.eclipse.jetty:jetty-util:12.0.36
com.google.code.findbugs:jsr305:3.0.2
com.librato.metrics:librato-java:2.1.0
org.apache.thrift:libthrift:0.14.1
@@ -257,7 +266,7 @@ io.airlift.airline:0.9
BSD 3-Clause
------------
-org.antlr:antlr-runtime:4.9.3
+org.antlr:antlr4-runtime:4.13.2
org.ow2.asm:asm:9.3
org.jline:jline:3.26.2
@@ -271,19 +280,29 @@ MIT License
------------
org.slf4j:slf4j-api:2.0.9
com.bugsnag:bugsnag:3.7.2
+io.github.classgraph:classgraph:4.8.184
EPL 1.0
------------
com.h2database:h2-mvstore:2.1.212
-ch.qos.logback:logback-classic:1.3.15
-ch.qos.logback:logback-core:1.3.15
+
+
+EPL 2.0
+------------
+ch.qos.logback:logback-classic:1.5.34
+ch.qos.logback:logback-core:1.5.34
+jakarta.annotation:jakarta.annotation-api:3.0.0
+jakarta.servlet:jakarta.servlet-api:6.0.0
+
+EDL 1.0
+------------
+jakarta.activation:jakarta.activation-api:2.1.0
+jakarta.xml.bind:jakarta.xml.bind-api:3.0.1
CDDL 1.1
------------
-jakarta.annotation:jakarta.annotation-api:1.3.5
-jakarta.servlet:jakarta.servlet-api:4.0.4
javax.xml.bind:jaxb-api:2.4.0-b180725.0427
org.glassfish.jaxb:jaxb-runtime:2.3.6
diff --git a/README.md b/README.md
index ff4ca4a5f46..8d6923fbdb2 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@



-
+
[](https://iotdb.apache.org/)
[](https://central.sonatype.com/artifact/org.apache.iotdb/iotdb-parent)
[](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 to 25 are verified. Please make sure the environment path
has been set accordingly).
+1. Java >= 17 (17 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 71fca90457b..73ea63cf67d 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/)
[](https://central.sonatype.com/artifact/org.apache.iotdb/iotdb-parent)
@@ -86,7 +86,7 @@ IoTDB的主要特点如下:
## 环境准备
要使用IoTDB,您需要:
-1. Java >= 1.8 (目前 1.8 到 25 已经被验证可用。请确保环变量境路径已正确设置)。
+1. Java >= 17 (目前 17 到 25 已经被验证可用。请确保环变量境路径已正确设置)。
2. Maven >= 3.6 (如果希望从源代码编译和安装IoTDB)。
3. 设置 max open files 为 65535,以避免"too many open files"错误。
4. (可选) 将 somaxconn 设置为 65535 以避免系统在高负载时出现 "connection reset" 错误。
diff --git a/dependencies.json b/dependencies.json
index eaaf50beae5..4bee8c84542 100644
--- a/dependencies.json
+++ b/dependencies.json
@@ -1,160 +1,162 @@
{
- "dependencies": [
- "at.yawk.lz4:lz4-java",
- "cglib:cglib",
- "ch.qos.logback:logback-classic",
- "ch.qos.logback:logback-core",
- "ch.qos.reload4j:reload4j",
- "com.digitalpetri.fsm:strict-machine",
- "com.digitalpetri.netty:netty-channel-fsm",
- "com.fasterxml.jackson.core:jackson-annotations",
- "com.fasterxml.jackson.core:jackson-core",
- "com.fasterxml.jackson.core:jackson-databind",
- "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
- "com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
- "com.fasterxml.jackson.jaxrs:jackson-jaxrs-base",
- "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider",
- "com.fasterxml.jackson.module:jackson-module-jaxb-annotations",
- "com.github.ben-manes.caffeine:caffeine",
- "com.github.luben:zstd-jni",
- "com.github.moquette-io.moquette:moquette-broker",
- "com.github.wendykierp:JTransforms",
- "com.google.code.findbugs:jsr305",
- "com.google.code.gson:gson",
- "com.google.errorprone:error_prone_annotations",
- "com.google.guava:failureaccess",
- "com.google.guava:guava",
- "com.google.guava:listenablefuture",
- "com.google.j2objc:j2objc-annotations",
- "com.h2database:h2-mvstore",
- "com.sun.istack:istack-commons-runtime",
- "com.zaxxer:HikariCP",
- "commons-cli:commons-cli",
- "commons-codec:commons-codec",
- "commons-logging:commons-logging",
- "io.airlift:airline",
- "io.airlift:units",
- "io.dropwizard.metrics:metrics-core",
- "io.micrometer:micrometer-commons",
- "io.micrometer:micrometer-core",
- "io.micrometer:micrometer-observation",
- "io.netty:netty-buffer",
- "io.netty:netty-codec",
- "io.netty:netty-codec-dns",
- "io.netty:netty-codec-http",
- "io.netty:netty-codec-http2",
- "io.netty:netty-codec-mqtt",
- "io.netty:netty-codec-socks",
- "io.netty:netty-common",
- "io.netty:netty-handler",
- "io.netty:netty-handler-proxy",
- "io.netty:netty-resolver",
- "io.netty:netty-resolver-dns",
- "io.netty:netty-resolver-dns-classes-macos",
- "io.netty:netty-resolver-dns-native-macos",
- "io.netty:netty-tcnative-boringssl-static",
- "io.netty:netty-tcnative-boringssl-static",
- "io.netty:netty-tcnative-boringssl-static",
- "io.netty:netty-tcnative-boringssl-static",
- "io.netty:netty-tcnative-boringssl-static",
- "io.netty:netty-tcnative-classes",
- "io.netty:netty-transport",
- "io.netty:netty-transport-classes-epoll",
- "io.netty:netty-transport-classes-kqueue",
- "io.netty:netty-transport-native-epoll",
- "io.netty:netty-transport-native-epoll",
- "io.netty:netty-transport-native-kqueue",
- "io.netty:netty-transport-native-kqueue",
- "io.netty:netty-transport-native-unix-common",
- "io.projectreactor:reactor-core",
- "io.projectreactor.netty:reactor-netty-core",
- "io.projectreactor.netty:reactor-netty-http",
- "io.swagger:swagger-annotations",
- "io.swagger:swagger-core",
- "io.swagger:swagger-jaxrs",
- "io.swagger:swagger-models",
- "jakarta.activation:jakarta.activation-api",
- "jakarta.annotation:jakarta.annotation-api",
- "jakarta.servlet:jakarta.servlet-api",
- "jakarta.validation:jakarta.validation-api",
- "jakarta.ws.rs:jakarta.ws.rs-api",
- "jakarta.xml.bind:jakarta.xml.bind-api",
- "javax.xml.bind:jaxb-api",
- "net.java.dev.jna:jna",
- "net.java.dev.jna:jna-platform",
- "org.antlr:antlr4-runtime",
- "org.apache.commons:commons-csv",
- "org.apache.commons:commons-lang3",
- "org.apache.commons:commons-math3",
- "org.apache.commons:commons-pool2",
- "org.apache.httpcomponents:httpclient",
- "org.apache.httpcomponents:httpcore",
- "org.apache.ratis:ratis-client",
- "org.apache.ratis:ratis-common",
- "org.apache.ratis:ratis-grpc",
- "org.apache.ratis:ratis-metrics-api",
- "org.apache.ratis:ratis-proto",
- "org.apache.ratis:ratis-server",
- "org.apache.ratis:ratis-server-api",
- "org.apache.ratis:ratis-thirdparty-misc",
- "org.apache.thrift:libthrift",
- "org.apache.tsfile:common",
- "org.apache.tsfile:tsfile",
- "org.bouncycastle:bcpkix-jdk18on",
- "org.bouncycastle:bcprov-jdk18on",
- "org.bouncycastle:bcutil-jdk18on",
- "org.checkerframework:checker-qual",
- "org.eclipse.collections:eclipse-collections",
- "org.eclipse.collections:eclipse-collections-api",
- "org.eclipse.jetty:jetty-http",
- "org.eclipse.jetty:jetty-io",
- "org.eclipse.jetty:jetty-security",
- "org.eclipse.jetty:jetty-server",
- "org.eclipse.jetty:jetty-servlet",
- "org.eclipse.jetty:jetty-util",
- "org.eclipse.jetty:jetty-util-ajax",
- "org.eclipse.milo:bsd-core",
- "org.eclipse.milo:bsd-generator",
- "org.eclipse.milo:sdk-client",
- "org.eclipse.milo:sdk-core",
- "org.eclipse.milo:sdk-server",
- "org.eclipse.milo:stack-client",
- "org.eclipse.milo:stack-core",
- "org.eclipse.milo:stack-server",
- "org.fusesource.hawtbuf:hawtbuf",
- "org.fusesource.hawtdispatch:hawtdispatch",
- "org.fusesource.hawtdispatch:hawtdispatch-transport",
- "org.fusesource.mqtt-client:mqtt-client",
- "org.glassfish.hk2:hk2-api",
- "org.glassfish.hk2:hk2-locator",
- "org.glassfish.hk2:hk2-utils",
- "org.glassfish.hk2:osgi-resource-locator",
- "org.glassfish.hk2.external:aopalliance-repackaged",
- "org.glassfish.hk2.external:jakarta.inject",
- "org.glassfish.jaxb:jaxb-runtime",
- "org.glassfish.jaxb:txw2",
- "org.glassfish.jersey.containers:jersey-container-servlet-core",
- "org.glassfish.jersey.core:jersey-client",
- "org.glassfish.jersey.core:jersey-common",
- "org.glassfish.jersey.core:jersey-server",
- "org.glassfish.jersey.inject:jersey-hk2",
- "org.glassfish.jersey.media:jersey-media-multipart",
- "org.hdrhistogram:HdrHistogram",
- "org.java-websocket:Java-WebSocket",
- "org.javassist:javassist",
- "org.jline:jline",
- "org.jvnet.mimepull:mimepull",
- "org.latencyutils:LatencyUtils",
- "org.ops4j.pax.jdbc:pax-jdbc-common",
- "org.osgi:osgi.cmpn",
- "org.osgi:osgi.core",
- "org.ow2.asm:asm",
- "org.reactivestreams:reactive-streams",
- "org.slf4j:slf4j-api",
- "org.slf4j:slf4j-reload4j",
- "org.tukaani:xz",
- "org.xerial.snappy:snappy-java",
- "org.yaml:snakeyaml",
- "pl.edu.icm:JLargeArrays"
- ]
+ "dependencies": [
+ "at.yawk.lz4:lz4-java",
+ "cglib:cglib",
+ "ch.qos.logback:logback-classic",
+ "ch.qos.logback:logback-core",
+ "ch.qos.reload4j:reload4j",
+ "com.digitalpetri.fsm:strict-machine",
+ "com.digitalpetri.netty:netty-channel-fsm",
+ "com.fasterxml.jackson.core:jackson-annotations",
+ "com.fasterxml.jackson.core:jackson-core",
+ "com.fasterxml.jackson.core:jackson-databind",
+ "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
+ "com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
+ "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base",
+ "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider",
+
"com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations",
+ "com.github.ben-manes.caffeine:caffeine",
+ "com.github.luben:zstd-jni",
+ "com.github.moquette-io.moquette:moquette-broker",
+ "com.github.wendykierp:JTransforms",
+ "com.google.code.findbugs:jsr305",
+ "com.google.code.gson:gson",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:guava",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "com.h2database:h2-mvstore",
+ "com.sun.activation:jakarta.activation",
+ "com.sun.istack:istack-commons-runtime",
+ "com.zaxxer:HikariCP",
+ "commons-cli:commons-cli",
+ "commons-codec:commons-codec",
+ "commons-logging:commons-logging",
+ "io.airlift:airline",
+ "io.airlift:units",
+ "io.dropwizard.metrics:metrics-core",
+ "io.github.classgraph:classgraph",
+ "io.micrometer:micrometer-commons",
+ "io.micrometer:micrometer-core",
+ "io.micrometer:micrometer-observation",
+ "io.netty:netty-buffer",
+ "io.netty:netty-codec",
+ "io.netty:netty-codec-dns",
+ "io.netty:netty-codec-http",
+ "io.netty:netty-codec-http2",
+ "io.netty:netty-codec-mqtt",
+ "io.netty:netty-codec-socks",
+ "io.netty:netty-common",
+ "io.netty:netty-handler",
+ "io.netty:netty-handler-proxy",
+ "io.netty:netty-resolver",
+ "io.netty:netty-resolver-dns",
+ "io.netty:netty-resolver-dns-classes-macos",
+ "io.netty:netty-resolver-dns-native-macos",
+ "io.netty:netty-tcnative-boringssl-static",
+ "io.netty:netty-tcnative-boringssl-static",
+ "io.netty:netty-tcnative-boringssl-static",
+ "io.netty:netty-tcnative-boringssl-static",
+ "io.netty:netty-tcnative-boringssl-static",
+ "io.netty:netty-tcnative-classes",
+ "io.netty:netty-transport",
+ "io.netty:netty-transport-classes-epoll",
+ "io.netty:netty-transport-classes-kqueue",
+ "io.netty:netty-transport-native-epoll",
+ "io.netty:netty-transport-native-epoll",
+ "io.netty:netty-transport-native-kqueue",
+ "io.netty:netty-transport-native-kqueue",
+ "io.netty:netty-transport-native-unix-common",
+ "io.projectreactor:reactor-core",
+ "io.projectreactor.netty:reactor-netty-core",
+ "io.projectreactor.netty:reactor-netty-http",
+ "io.swagger.core.v3:swagger-annotations-jakarta",
+ "io.swagger.core.v3:swagger-core-jakarta",
+ "io.swagger.core.v3:swagger-integration-jakarta",
+ "io.swagger.core.v3:swagger-jaxrs2-jakarta",
+ "io.swagger.core.v3:swagger-models-jakarta",
+ "jakarta.activation:jakarta.activation-api",
+ "jakarta.annotation:jakarta.annotation-api",
+ "jakarta.inject:jakarta.inject-api",
+ "jakarta.servlet:jakarta.servlet-api",
+ "jakarta.validation:jakarta.validation-api",
+ "jakarta.ws.rs:jakarta.ws.rs-api",
+ "jakarta.xml.bind:jakarta.xml.bind-api",
+ "net.java.dev.jna:jna",
+ "net.java.dev.jna:jna-platform",
+ "org.antlr:antlr4-runtime",
+ "org.apache.commons:commons-csv",
+ "org.apache.commons:commons-lang3",
+ "org.apache.commons:commons-math3",
+ "org.apache.commons:commons-pool2",
+ "org.apache.httpcomponents:httpclient",
+ "org.apache.httpcomponents:httpcore",
+ "org.apache.ratis:ratis-client",
+ "org.apache.ratis:ratis-common",
+ "org.apache.ratis:ratis-grpc",
+ "org.apache.ratis:ratis-metrics-api",
+ "org.apache.ratis:ratis-proto",
+ "org.apache.ratis:ratis-server",
+ "org.apache.ratis:ratis-server-api",
+ "org.apache.ratis:ratis-thirdparty-misc",
+ "org.apache.thrift:libthrift",
+ "org.apache.tsfile:common",
+ "org.apache.tsfile:tsfile",
+ "org.bouncycastle:bcpkix-jdk18on",
+ "org.bouncycastle:bcprov-jdk18on",
+ "org.bouncycastle:bcutil-jdk18on",
+ "org.checkerframework:checker-qual",
+ "org.eclipse.collections:eclipse-collections",
+ "org.eclipse.collections:eclipse-collections-api",
+ "org.eclipse.jetty:jetty-http",
+ "org.eclipse.jetty:jetty-io",
+ "org.eclipse.jetty:jetty-security",
+ "org.eclipse.jetty:jetty-server",
+ "org.eclipse.jetty:jetty-session",
+ "org.eclipse.jetty:jetty-util",
+ "org.eclipse.jetty.ee10:jetty-ee10-servlet",
+ "org.eclipse.milo:bsd-core",
+ "org.eclipse.milo:bsd-generator",
+ "org.eclipse.milo:sdk-client",
+ "org.eclipse.milo:sdk-core",
+ "org.eclipse.milo:sdk-server",
+ "org.eclipse.milo:stack-client",
+ "org.eclipse.milo:stack-core",
+ "org.eclipse.milo:stack-server",
+ "org.fusesource.hawtbuf:hawtbuf",
+ "org.fusesource.hawtdispatch:hawtdispatch",
+ "org.fusesource.hawtdispatch:hawtdispatch-transport",
+ "org.fusesource.mqtt-client:mqtt-client",
+ "org.glassfish.hk2:hk2-api",
+ "org.glassfish.hk2:hk2-locator",
+ "org.glassfish.hk2:hk2-utils",
+ "org.glassfish.hk2:osgi-resource-locator",
+ "org.glassfish.hk2.external:aopalliance-repackaged",
+ "org.glassfish.jaxb:jaxb-runtime",
+ "org.glassfish.jaxb:txw2",
+ "org.glassfish.jersey.containers:jersey-container-servlet-core",
+ "org.glassfish.jersey.core:jersey-client",
+ "org.glassfish.jersey.core:jersey-common",
+ "org.glassfish.jersey.core:jersey-server",
+ "org.glassfish.jersey.inject:jersey-hk2",
+ "org.glassfish.jersey.media:jersey-media-multipart",
+ "org.hdrhistogram:HdrHistogram",
+ "org.java-websocket:Java-WebSocket",
+ "org.javassist:javassist",
+ "org.jline:jline",
+ "org.jvnet.mimepull:mimepull",
+ "org.latencyutils:LatencyUtils",
+ "org.ops4j.pax.jdbc:pax-jdbc-common",
+ "org.osgi:osgi.cmpn",
+ "org.osgi:osgi.core",
+ "org.ow2.asm:asm",
+ "org.reactivestreams:reactive-streams",
+ "org.slf4j:slf4j-api",
+ "org.slf4j:slf4j-reload4j",
+ "org.tukaani:xz",
+ "org.xerial.snappy:snappy-java",
+ "org.yaml:snakeyaml",
+ "pl.edu.icm:JLargeArrays"
+ ]
}
diff --git a/example/jdbc/pom.xml b/example/jdbc/pom.xml
index 0a426a94f0a..36591f292a0 100644
--- a/example/jdbc/pom.xml
+++ b/example/jdbc/pom.xml
@@ -29,8 +29,8 @@
<artifactId>jdbc-example</artifactId>
<name>IoTDB: Example: JDBC</name>
<properties>
- <maven.compiler.source>1.7</maven.compiler.source>
- <maven.compiler.target>1.7</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
diff --git a/example/pipe-count-point-processor/pom.xml
b/example/pipe-count-point-processor/pom.xml
index 0e81eef721e..99e7a64c37e 100644
--- a/example/pipe-count-point-processor/pom.xml
+++ b/example/pipe-count-point-processor/pom.xml
@@ -29,8 +29,8 @@
<artifactId>pipe-count-point-processor-example</artifactId>
<name>IoTDB: Example: Pipe: Count Point Processor</name>
<properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
diff --git a/example/pom.xml b/example/pom.xml
index 7730f4e7cbe..0c2e6f50d7c 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -49,8 +49,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>8</source>
- <target>8</target>
+ <source>17</source>
+ <target>17</target>
</configuration>
</plugin>
<plugin>
diff --git a/external-service-impl/mqtt/pom.xml
b/external-service-impl/mqtt/pom.xml
index b28c1b64918..e8de37a9514 100644
--- a/external-service-impl/mqtt/pom.xml
+++ b/external-service-impl/mqtt/pom.xml
@@ -29,8 +29,8 @@
<artifactId>mqtt</artifactId>
<name>IoTDB: External-Service-Impl: MQTT</name>
<properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
diff --git a/external-service-impl/pom.xml b/external-service-impl/pom.xml
index 04483b289f3..cd2e5fad073 100644
--- a/external-service-impl/pom.xml
+++ b/external-service-impl/pom.xml
@@ -35,8 +35,8 @@
<module>rest-openapi</module>
</modules>
<properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
diff --git a/external-service-impl/rest-openapi/pom.xml
b/external-service-impl/rest-openapi/pom.xml
index 3b46227cf61..010cc231c71 100644
--- a/external-service-impl/rest-openapi/pom.xml
+++ b/external-service-impl/rest-openapi/pom.xml
@@ -30,20 +30,20 @@
<name>IoTDB: External-Service-Impl: Rest-OpenAPI</name>
<dependencies>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-annotations</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-annotations-jakarta</artifactId>
</dependency>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-models</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-models-jakarta</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.jaxrs</groupId>
- <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
+ <artifactId>jackson-jakarta-rs-json-provider</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@@ -62,8 +62,12 @@
<artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-jaxrs</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-jaxrs2-jakarta</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-integration-jakarta</artifactId>
</dependency>
<!-- Just needed for unused import code -->
<dependency>
@@ -105,6 +109,8 @@
<artifactId>iotdb-rest-service</artifactId>
<artifactVersion>${project.version}</artifactVersion>
<dateLibrary>java8</dateLibrary>
+ <library>jersey3</library>
+ <useJakartaEe>true</useJakartaEe>
<useGzipFeature>true</useGzipFeature>
</configOptions>
</configuration>
@@ -132,6 +138,8 @@
<artifactId>iotdb-rest-service</artifactId>
<artifactVersion>${project.version}</artifactVersion>
<dateLibrary>java8</dateLibrary>
+ <library>jersey3</library>
+ <useJakartaEe>true</useJakartaEe>
<useGzipFeature>true</useGzipFeature>
</configOptions>
</configuration>
@@ -159,6 +167,8 @@
<artifactId>iotdb-rest-service</artifactId>
<artifactVersion>${project.version}</artifactVersion>
<dateLibrary>java8</dateLibrary>
+ <library>jersey3</library>
+ <useJakartaEe>true</useJakartaEe>
<useGzipFeature>true</useGzipFeature>
</configOptions>
</configuration>
@@ -186,6 +196,8 @@
<artifactId>iotdb-rest-service</artifactId>
<artifactVersion>${project.version}</artifactVersion>
<dateLibrary>java8</dateLibrary>
+ <library>jersey3</library>
+ <useJakartaEe>true</useJakartaEe>
<useGzipFeature>true</useGzipFeature>
</configOptions>
</configuration>
diff --git a/external-service-impl/rest/pom.xml
b/external-service-impl/rest/pom.xml
index 7ef130ace31..fbc02b6dfb8 100644
--- a/external-service-impl/rest/pom.xml
+++ b/external-service-impl/rest/pom.xml
@@ -29,8 +29,8 @@
<artifactId>rest</artifactId>
<name>IoTDB: External-Service-Impl: Rest</name>
<properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
@@ -51,10 +51,16 @@
<artifactId>rest-openapi</artifactId>
<version>2.0.7-SNAPSHOT</version>
<exclusions>
- <!-- repeated in datanode -->
+ <!--
+ Keep jakarta.xml.bind-api 3.x for the Swagger/OpenAPI
runtime. The
+ datanode-provided jakarta.xml.bind-api 2.3.x still
contains the old
+ javax.xml.bind namespace and cannot satisfy
jakarta.xml.bind classes.
+ Exclude the JAXB-transitive activation implementation to
avoid
+ duplicating jakarta.activation classes with
jakarta.activation-api.
+ -->
<exclusion>
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
+ <groupId>com.sun.activation</groupId>
+ <artifactId>jakarta.activation</artifactId>
</exclusion>
<!-- repeated in datanode -->
<exclusion>
@@ -89,8 +95,8 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-servlet</artifactId>
+ <groupId>org.eclipse.jetty.ee10</groupId>
+ <artifactId>jetty-ee10-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/RestService.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/RestService.java
index 2e072d87961..acba4e30390 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/RestService.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/RestService.java
@@ -22,6 +22,8 @@ import org.apache.iotdb.externalservice.api.IExternalService;
import org.apache.iotdb.rest.i18n.RestMessages;
import org.apache.iotdb.rest.protocol.filter.ApiOriginFilter;
+import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee10.servlet.ServletHolder;
import org.eclipse.jetty.http.HttpVersion;
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory;
@@ -29,14 +31,12 @@ import org.eclipse.jetty.server.SecureRequestCustomizer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.glassfish.jersey.servlet.ServletContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.DispatcherType;
+import jakarta.servlet.DispatcherType;
import java.util.EnumSet;
@@ -96,7 +96,7 @@ public class RestService implements IExternalService {
holder.setInitOrder(1);
holder.setInitParameter(
"jersey.config.server.provider.packages",
- "io.swagger.jaxrs.listing, io.swagger.sample.resource,
org.apache.iotdb.rest.protocol");
+ "io.swagger.v3.jaxrs2.integration.resources,
org.apache.iotdb.rest.protocol");
holder.setInitParameter(
"jersey.config.server.provider.classnames",
"org.glassfish.jersey.media.multipart.MultiPartFeature");
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/ApiOriginFilter.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/ApiOriginFilter.java
index 578b8b35748..a784f9d34d5 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/ApiOriginFilter.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/ApiOriginFilter.java
@@ -17,16 +17,17 @@
package org.apache.iotdb.rest.protocol.filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
-public class ApiOriginFilter implements javax.servlet.Filter {
+public class ApiOriginFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/AuthorizationFilter.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/AuthorizationFilter.java
index d973933260c..a7bb35e3b2e 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/AuthorizationFilter.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/AuthorizationFilter.java
@@ -28,15 +28,15 @@ import org.apache.iotdb.db.protocol.session.SessionManager;
import org.apache.iotdb.rest.protocol.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.servlet.annotation.WebFilter;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.Provider;
+import jakarta.servlet.annotation.WebFilter;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ext.Provider;
import java.io.IOException;
import java.time.DateTimeException;
@@ -58,14 +58,14 @@ public class AuthorizationFilter implements
ContainerRequestFilter, ContainerRes
@Override
public void filter(ContainerRequestContext containerRequestContext) throws
IOException {
+ String requestPath = containerRequestContext.getUriInfo().getPath();
- if ("OPTIONS".equals(containerRequestContext.getMethod())
- || "ping".equals(containerRequestContext.getUriInfo().getPath())
- || (config.isEnableSwagger()
- &&
"swagger.json".equals(containerRequestContext.getUriInfo().getPath()))) {
+ if ("OPTIONS".equals(containerRequestContext.getMethod()) ||
"ping".equals(requestPath)) {
return;
- } else if (!config.isEnableSwagger()
- &&
"swagger.json".equals(containerRequestContext.getUriInfo().getPath())) {
+ } else if (isOpenApiPath(requestPath)) {
+ if (config.isEnableSwagger()) {
+ return;
+ }
Response resp =
Response.status(Status.NOT_FOUND).type(MediaType.APPLICATION_JSON).entity("").build();
containerRequestContext.abortWith(resp);
@@ -194,4 +194,10 @@ public class AuthorizationFilter implements
ContainerRequestFilter, ContainerRes
SESSION_MANAGER.removeCurrSession();
}
}
+
+ private boolean isOpenApiPath(String requestPath) {
+ return "openapi".equals(requestPath)
+ || "openapi.json".equals(requestPath)
+ || "openapi.yaml".equals(requestPath);
+ }
}
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/BasicSecurityContext.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/BasicSecurityContext.java
index 5bea8d520dd..0a7165f2903 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/BasicSecurityContext.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/filter/BasicSecurityContext.java
@@ -17,7 +17,7 @@
package org.apache.iotdb.rest.protocol.filter;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.SecurityContext;
import java.security.Principal;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/handler/AuthorizationHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/handler/AuthorizationHandler.java
index 4826a39fadd..4344554bce6 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/handler/AuthorizationHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/handler/AuthorizationHandler.java
@@ -24,8 +24,8 @@ import
org.apache.iotdb.db.queryengine.plan.statement.Statement;
import org.apache.iotdb.rest.protocol.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
public class AuthorizationHandler {
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/impl/PingApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/impl/PingApiServiceImpl.java
index 740bb28b069..645ffe7d3cf 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/impl/PingApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/impl/PingApiServiceImpl.java
@@ -23,8 +23,8 @@ import org.apache.iotdb.rest.protocol.PingApiService;
import org.apache.iotdb.rest.protocol.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
public class PingApiServiceImpl extends PingApiService {
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java
index 57d78a527dc..e3b83f51b7d 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java
@@ -35,7 +35,7 @@ import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java
index 6aa4d028cec..4bc94553414 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java
@@ -33,7 +33,7 @@ import org.apache.tsfile.read.common.block.TsBlock;
import org.apache.tsfile.utils.BytesUtils;
import org.apache.tsfile.utils.DateUtils;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java
index 607e96620f6..77197c3c088 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java
@@ -50,8 +50,8 @@ import
org.apache.iotdb.rest.protocol.table.v1.model.InsertTabletRequest;
import org.apache.iotdb.rest.protocol.table.v1.model.SQL;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.util.List;
import java.util.Optional;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java
index 761b01d7c6d..1f43f2fc25f 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java
@@ -34,7 +34,7 @@ import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/QueryDataSetHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/QueryDataSetHandler.java
index c2fe52440a7..3918a07dd52 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/QueryDataSetHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/QueryDataSetHandler.java
@@ -39,7 +39,7 @@ import org.apache.tsfile.read.common.block.TsBlock;
import org.apache.tsfile.utils.BytesUtils;
import org.apache.tsfile.utils.DateUtils;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/GrafanaApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/GrafanaApiServiceImpl.java
index c601bc5107b..19b8ab8b38e 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/GrafanaApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/GrafanaApiServiceImpl.java
@@ -48,8 +48,8 @@ import org.apache.iotdb.rpc.TSStatusCode;
import com.google.common.base.Joiner;
import org.apache.tsfile.external.commons.lang3.StringUtils;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.time.ZoneId;
import java.util.List;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/RestApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/RestApiServiceImpl.java
index d8b5328fe00..b5b57ac10e7 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/RestApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/impl/RestApiServiceImpl.java
@@ -51,8 +51,8 @@ import
org.apache.iotdb.rest.protocol.v1.model.InsertTabletRequest;
import org.apache.iotdb.rest.protocol.v1.model.SQL;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.time.ZoneId;
import java.util.Optional;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java
index 2a5d1d4416a..39780877239 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java
@@ -34,7 +34,7 @@ import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
import java.io.IOException;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/FastLastHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/FastLastHandler.java
index 2895e0b198e..5bb5e1274ae 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/FastLastHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/FastLastHandler.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.rest.protocol.v2.model.PrefixPathList;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.service.rpc.thrift.TSLastDataQueryReq;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Collections;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/QueryDataSetHandler.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/QueryDataSetHandler.java
index 188b37ebb1e..b188454e179 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/QueryDataSetHandler.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/QueryDataSetHandler.java
@@ -39,7 +39,7 @@ import org.apache.tsfile.read.common.block.TsBlock;
import org.apache.tsfile.utils.BytesUtils;
import org.apache.tsfile.utils.DateUtils;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
@@ -132,6 +132,7 @@ public class QueryDataSetHandler {
for (int i = 0; i < datasetHeader.getRespColumns().size(); i++) {
targetDataSet.addColumnNamesItem(datasetHeader.getRespColumns().get(i));
targetDataSet.addValuesItem(new ArrayList<>());
+
targetDataSet.addDataTypesItem(datasetHeader.getRespDataTypes().get(i).name());
targetDataSetIndexToSourceDataSetIndex[i] = i;
}
}
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/GrafanaApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/GrafanaApiServiceImpl.java
index 3842625eee4..e8701f89347 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/GrafanaApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/GrafanaApiServiceImpl.java
@@ -48,8 +48,8 @@ import org.apache.iotdb.rpc.TSStatusCode;
import com.google.common.base.Joiner;
import org.apache.tsfile.external.commons.lang3.StringUtils;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.time.ZoneId;
import java.util.List;
diff --git
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java
index 6afd56c7fcb..6e2cef45b7f 100644
---
a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java
+++
b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java
@@ -71,8 +71,8 @@ import org.apache.tsfile.file.metadata.IDeviceID;
import org.apache.tsfile.read.TimeValuePair;
import org.apache.tsfile.utils.Pair;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.SecurityContext;
import java.time.ZoneId;
import java.util.ArrayList;
diff --git
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/config/MppBaseConfig.java
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/config/MppBaseConfig.java
index 975ae1a5682..e0758de70c9 100644
---
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/config/MppBaseConfig.java
+++
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/config/MppBaseConfig.java
@@ -19,8 +19,9 @@
package org.apache.iotdb.it.env.cluster.config;
+import jakarta.validation.constraints.NotNull;
+
import javax.annotation.Nullable;
-import javax.validation.constraints.NotNull;
import java.io.FileWriter;
import java.io.IOException;
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionStringLiteralIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionStringLiteralIT.java
index 37ad2dfb457..01bb55aa6ae 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionStringLiteralIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionStringLiteralIT.java
@@ -431,7 +431,7 @@ public class IoTDBSyntaxConventionStringLiteralIT {
String errorMsg =
TSStatusCode.SQL_PARSE_ERROR.getStatusCode()
+ ": Error occurred while parsing SQL to physical plan: "
- + "line 1:22 token recognition error at: '` = 1) from
root.vehicle.d1'";
+ + "line 1:21 no viable alternative at input 'select
bottom_k(s1,``k'";
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
// UDF attribute should be STRING_LITERAL
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterTimeSeriesTypeIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterTimeSeriesTypeIT.java
index fcde3f61e37..80de584b798 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterTimeSeriesTypeIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBAlterTimeSeriesTypeIT.java
@@ -55,7 +55,7 @@ import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.NotSupportedException;
+import jakarta.ws.rs.NotSupportedException;
import java.io.File;
import java.io.IOException;
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
index f04b6682962..416315cfb1f 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
@@ -57,7 +57,7 @@ import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.NotSupportedException;
+import jakarta.ws.rs.NotSupportedException;
import java.io.File;
import java.io.IOException;
diff --git a/iotdb-client/client-cpp/README.md
b/iotdb-client/client-cpp/README.md
index dcd6d0bf58f..2572fd8e42e 100644
--- a/iotdb-client/client-cpp/README.md
+++ b/iotdb-client/client-cpp/README.md
@@ -547,9 +547,8 @@ mvn -P with-cpp -pl iotdb-client/client-cpp spotless:check
mvn -P with-cpp -pl iotdb-client/client-cpp spotless:apply
```
-On JDK 8 the C++ Spotless profile is skipped automatically (Spotless's
-clang-format integration requires Spotless 2.44+, which itself requires
-JDK 11+).
+The C++ Spotless profile is registered on the repository baseline, JDK 17+.
+Use JDK 17 or newer for `spotless:check` / `spotless:apply`.
## Package layout
diff --git a/iotdb-client/client-cpp/pom.xml b/iotdb-client/client-cpp/pom.xml
index 5ab79fd4e59..b5b97e63792 100644
--- a/iotdb-client/client-cpp/pom.xml
+++ b/iotdb-client/client-cpp/pom.xml
@@ -377,15 +377,11 @@
<build.tests>OFF</build.tests>
</properties>
</profile>
- <!--
- Spotless <clangFormat> needs Spotless 2.44+; root POM downgrades to
- 2.27.1 on JDK8 and cannot parse cpp config. Only register C++ rules
- when JDK 11+.
- -->
+ <!-- Spotless <clangFormat> needs Spotless 2.44+; only register C++
rules on the repository baseline, JDK 17+. -->
<profile>
<id>spotless-cpp</id>
<activation>
- <jdk>[11,)</jdk>
+ <jdk>[17,)</jdk>
</activation>
<build>
<plugins>
diff --git a/iotdb-client/jdbc/README.md b/iotdb-client/jdbc/README.md
index 02e7e585b80..9d8c5409dfd 100644
--- a/iotdb-client/jdbc/README.md
+++ b/iotdb-client/jdbc/README.md
@@ -23,7 +23,7 @@
## Dependencies
-* JDK >= 1.8
+* JDK >= 17
* Maven >= 3.6
## How to package only jdbc project
@@ -269,4 +269,4 @@ Start a data source instance (supposed you have started
IoTDB):
jdbc:ds-create -dc org.apache.iotdb.jdbc.IoTDBDriver -u root -p root -url
"jdbc:iotdb://127.0.0.1:6667/" IoTDB
```
Try query:
-`jdbc:query IoTDB "select * from root"`
\ No newline at end of file
+`jdbc:query IoTDB "select * from root"`
diff --git a/iotdb-client/session/src/test/resources/iotdb-common.properties
b/iotdb-client/session/src/test/resources/iotdb-common.properties
index 965b3c010ed..2ec58b5db32 100644
--- a/iotdb-client/session/src/test/resources/iotdb-common.properties
+++ b/iotdb-client/session/src/test/resources/iotdb-common.properties
@@ -30,7 +30,7 @@ enable_rest_service=true
# the default row limit to a REST query response when the rowSize parameter is
not given in request
# rest_query_default_row_size_limit=10000
-# Whether to display rest service interface information through swagger. eg:
http://ip:port/swagger.json
+# Whether to display rest service interface information through OpenAPI. eg:
http://ip:port/openapi.json
# enable_swagger=false
# is SSL enabled
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/cq/ShowCQResp.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/cq/ShowCQResp.java
index f922888baed..52af4a78b7e 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/cq/ShowCQResp.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/cq/ShowCQResp.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TCQEntry;
import org.apache.iotdb.confignode.rpc.thrift.TShowCQResp;
import org.apache.iotdb.consensus.common.DataSet;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.Comparator;
import java.util.List;
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/externalservice/ShowExternalServiceResp.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/externalservice/ShowExternalServiceResp.java
index 7f88c4b203b..2895be1f6e0 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/externalservice/ShowExternalServiceResp.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/externalservice/ShowExternalServiceResp.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.consensus.common.DataSet;
import org.apache.iotdb.rpc.TSStatusCode;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.Comparator;
import java.util.List;
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaQuotaStatistics.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaQuotaStatistics.java
index 8d87d5b2715..b99fa62f869 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaQuotaStatistics.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaQuotaStatistics.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.confignode.manager.schema;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.Map;
import java.util.Set;
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/mnode/container/ConfigMNodeContainer.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/mnode/container/ConfigMNodeContainer.java
index 72012ba84c2..32926b02c1f 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/mnode/container/ConfigMNodeContainer.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/mnode/container/ConfigMNodeContainer.java
@@ -21,7 +21,7 @@ package
org.apache.iotdb.confignode.persistence.schema.mnode.container;
import org.apache.iotdb.commons.schema.node.utils.IMNodeContainer;
import org.apache.iotdb.confignode.persistence.schema.mnode.IConfigMNode;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.AbstractMap;
import java.util.Collection;
diff --git a/iotdb-core/consensus/pom.xml b/iotdb-core/consensus/pom.xml
index 1939acbe42f..a3344af6745 100644
--- a/iotdb-core/consensus/pom.xml
+++ b/iotdb-core/consensus/pom.xml
@@ -32,8 +32,8 @@
<consensus.it.skip>${consensus.test.skip}</consensus.it.skip>
<consensus.test.skip>false</consensus.test.skip>
<consensus.ut.skip>${consensus.test.skip}</consensus.ut.skip>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
diff --git a/iotdb-core/datanode/pom.xml b/iotdb-core/datanode/pom.xml
index ce879cb43cf..91f2ffd3826 100644
--- a/iotdb-core/datanode/pom.xml
+++ b/iotdb-core/datanode/pom.xml
@@ -491,8 +491,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>8</source>
- <target>8</target>
+ <source>17</source>
+ <target>17</target>
</configuration>
</plugin>
</plugins>
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java
index c838ff8ef3f..90026e37ba0 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/audit/DNAuditLogger.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.queryengine.plan.Coordinator;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.function.Supplier;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
index 64c0f65fe30..f6b7848d8ac 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
@@ -27,7 +27,7 @@ public class IoTDBRestServiceConfig {
/** Set the REST Service port. */
private int restServicePort = 18080;
- /** Whether to display rest service interface information through swagger. */
+ /** Whether to display rest service interface information through OpenAPI. */
private boolean enableSwagger = false;
/** Enable the REST Service ssl. */
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/PipeInsertionEvent.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/PipeInsertionEvent.java
index 7884e9dafcb..abef9cee978 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/PipeInsertionEvent.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/PipeInsertionEvent.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.db.i18n.DataNodePipeMessages;
import org.apache.iotdb.db.pipe.event.common.tsfile.PipeTsFileInsertionEvent;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* The data model used to record the Event and the data model of the
DataRegion corresponding to the
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/AlignedSinglePageWholeChunkReader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/AlignedSinglePageWholeChunkReader.java
index f0135f84cb7..f24b9d60264 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/AlignedSinglePageWholeChunkReader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/AlignedSinglePageWholeChunkReader.java
@@ -181,7 +181,7 @@ public class AlignedSinglePageWholeChunkReader extends
AbstractChunkReader
new AlignedPageReader(
timePageHeader,
timePageData,
- defaultTimeDecoder,
+ getTimeDecoder(timeChunkHeader.getEncodingType()),
valuePageHeaderList,
valuePageDataArray,
valueDataTypeList,
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/SinglePageWholeChunkReader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/SinglePageWholeChunkReader.java
index 4d8b35bac4a..1be5565b394 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/SinglePageWholeChunkReader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/SinglePageWholeChunkReader.java
@@ -87,7 +87,7 @@ public class SinglePageWholeChunkReader extends
AbstractChunkReader
encryptParam),
chunkHeader.getDataType(),
Decoder.getDecoderByType(chunkHeader.getEncodingType(),
chunkHeader.getDataType()),
- defaultTimeDecoder,
+ getConfiguredTimeDecoder(),
null);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeDynamicMemoryBlock.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeDynamicMemoryBlock.java
index 3dbac912db3..87a8b4a45cf 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeDynamicMemoryBlock.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeDynamicMemoryBlock.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.pipe.resource.memory;
import org.apache.tsfile.utils.Pair;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.function.Consumer;
import java.util.stream.Stream;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/task/DriverTaskId.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/task/DriverTaskId.java
index ead54340ba5..d525bb31ef4 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/task/DriverTaskId.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/task/DriverTaskId.java
@@ -24,7 +24,7 @@ import
org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.PlanFragmentId;
import org.apache.iotdb.db.queryengine.common.QueryId;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.Objects;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
index 121601ef00e..b9283a7f1a0 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java
@@ -46,7 +46,7 @@ import
org.apache.tsfile.read.common.block.column.TsBlockSerde;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.IOException;
import java.nio.ByteBuffer;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java
index 394a1c0723d..155e4c86e30 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java
@@ -31,7 +31,7 @@ import
org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.ReadWriteIOUtils;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
index 9f9d69e23e3..bd66da8daaa 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
@@ -159,7 +159,7 @@ import org.apache.tsfile.utils.TsPrimitiveType;
import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.File;
import java.util.ArrayList;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java
index 902a2dd69db..b0e1e682ad7 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java
@@ -33,7 +33,7 @@ import org.apache.iotdb.db.i18n.DataNodeQueryMessages;
import org.apache.tsfile.utils.ReadWriteIOUtils;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java
index 8bcc9e70f5d..2dafac1779f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java
@@ -34,7 +34,7 @@ import org.apache.iotdb.db.i18n.DataNodeQueryMessages;
import org.apache.tsfile.utils.ReadWriteIOUtils;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java
index 6c75db0c924..5a035d31c54 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java
@@ -34,7 +34,7 @@ import
org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
import org.apache.tsfile.utils.ReadWriteIOUtils;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java
index ba4dcbd6aae..91456dbbf7c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java
@@ -26,7 +26,7 @@ import
org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement;
import org.apache.tsfile.utils.RamUsageEstimator;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.List;
import java.util.Objects;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/FakeCRC32Deserializer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/FakeCRC32Deserializer.java
index 369b0ecfbf8..8570a651e05 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/FakeCRC32Deserializer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/FakeCRC32Deserializer.java
@@ -24,8 +24,9 @@ import org.apache.iotdb.db.i18n.DataNodeSchemaMessages;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import jakarta.validation.constraints.NotNull;
+
import javax.annotation.concurrent.NotThreadSafe;
-import javax.validation.constraints.NotNull;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/SchemaLogReader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/SchemaLogReader.java
index 2ba6390e867..ae7ae7d0adf 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/SchemaLogReader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/SchemaLogReader.java
@@ -26,7 +26,7 @@ import org.apache.tsfile.utils.ReadWriteIOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.io.BufferedInputStream;
import java.io.EOFException;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/mem/mnode/container/MemMNodeContainer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/mem/mnode/container/MemMNodeContainer.java
index 97de504f4b5..3870e1d369f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/mem/mnode/container/MemMNodeContainer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/mem/mnode/container/MemMNodeContainer.java
@@ -22,7 +22,7 @@ package
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.conta
import org.apache.iotdb.commons.schema.node.utils.IMNodeContainer;
import
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.AbstractMap;
import java.util.Collection;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/CachedMNodeContainer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/CachedMNodeContainer.java
index 67c8c6ed9b8..9586a0226dc 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/CachedMNodeContainer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/CachedMNodeContainer.java
@@ -24,9 +24,10 @@ import
org.apache.iotdb.commons.schema.node.utils.IMNodeContainer;
import org.apache.iotdb.db.i18n.DataNodeSchemaMessages;
import
org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.mnode.ICachedMNode;
+import jakarta.validation.constraints.NotNull;
+
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.validation.constraints.NotNull;
import java.util.AbstractMap;
import java.util.ArrayList;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionWorker.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionWorker.java
index 08f275b1610..4b9bebb9f77 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionWorker.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionWorker.java
@@ -30,7 +30,7 @@ import
org.apache.iotdb.db.utils.datastructure.FixedPriorityBlockingQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
diff --git a/iotdb-core/datanode/src/test/resources/iotdb-common.properties
b/iotdb-core/datanode/src/test/resources/iotdb-common.properties
index 1053eaafa2d..b753b0519ee 100644
--- a/iotdb-core/datanode/src/test/resources/iotdb-common.properties
+++ b/iotdb-core/datanode/src/test/resources/iotdb-common.properties
@@ -27,7 +27,7 @@ enable_rest_service=true
# the binding port of the REST service
# rest_service_port=18080
-# Whether to display rest service interface information through swagger. eg:
http://ip:port/swagger.json
+# Whether to display rest service interface information through OpenAPI. eg:
http://ip:port/openapi.json
# enable_swagger=false
# the default row limit to a REST query response when the rowSize parameter is
not given in request
diff --git a/iotdb-core/datanode/src/test/resources/iotdb-system.properties
b/iotdb-core/datanode/src/test/resources/iotdb-system.properties
index ce0ecff34f3..af1d5c3914a 100644
--- a/iotdb-core/datanode/src/test/resources/iotdb-system.properties
+++ b/iotdb-core/datanode/src/test/resources/iotdb-system.properties
@@ -44,7 +44,7 @@ enable_rest_service=true
# the binding port of the REST service
# rest_service_port=18080
-# Whether to display rest service interface information through swagger. eg:
http://ip:port/swagger.json
+# Whether to display rest service interface information through OpenAPI. eg:
http://ip:port/openapi.json
# enable_swagger=false
# the default row limit to a REST query response when the rowSize parameter is
not given in request
diff --git
a/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-system.properties.template
b/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-system.properties.template
index 48c564634fb..8e4808cec2f 100644
---
a/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-system.properties.template
+++
b/iotdb-core/node-commons/src/assembly/resources/conf/iotdb-system.properties.template
@@ -587,7 +587,7 @@ enable_rest_service=false
# Datatype: int
rest_service_port=18080
-# Whether to display rest service interface information through swagger. eg:
http://ip:port/swagger.json
+# Whether to display rest service interface information through OpenAPI. eg:
http://ip:port/openapi.json
# effectiveMode: restart
# Datatype: boolean
enable_swagger=false
diff --git a/library-udf/pom.xml b/library-udf/pom.xml
index 1be8c0ac39b..a452bbcc70a 100644
--- a/library-udf/pom.xml
+++ b/library-udf/pom.xml
@@ -29,8 +29,8 @@
<artifactId>library-udf</artifactId>
<name>IoTDB: UDF</name>
<properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
diff --git a/pom.xml b/pom.xml
index b06647be538..c577243cb0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,19 +50,16 @@
<module>external-service-impl</module>
</modules>
<properties>
- <!-- This was the last version to support Java 8 -->
<airlift-units.version>1.7</airlift-units.version>
<airlift.version>206</airlift.version>
<!--airlift-stats.version>235</airlift-stats.version-->
<airline.version>0.9</airline.version>
- <!-- This was the last version to support Java 8 -->
- <antlr4.version>4.9.3</antlr4.version>
+ <antlr4.version>4.13.2</antlr4.version>
<!-- By default, the argLine is empty-->
<argLine/>
<awaitility.version>4.2.0</awaitility.version>
<boost.include.dir/>
<bouncycastle.version>1.84</bouncycastle.version>
- <!-- This was the last version to support Java 8 -->
<caffeine.version>2.9.3</caffeine.version>
<cglib.version>3.3.0</cglib.version>
<cmake.build.type>Release</cmake.build.type>
@@ -81,11 +78,9 @@
<felix.version>5.1.9</felix.version>
<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.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 -->
<h2.version>2.2.224</h2.version>
<httpclient.version>4.5.14</httpclient.version>
<httpcore.version>4.4.16</httpcore.version>
@@ -95,38 +90,31 @@
-->
<iotdb-tools-thrift.version>0.14.1.0</iotdb-tools-thrift.version>
<jackson.version>2.18.6</jackson.version>
- <!-- This is the last version to support the javax namespace -->
- <jakarta.servlet-api.version>4.0.4</jakarta.servlet-api.version>
- <!-- This is the last version to support the javax namespace -->
- <jakarta.validation-api.version>2.0.2</jakarta.validation-api.version>
- <!-- This is the last version to support the javax namespace -->
- <jakarta.ws.rs-api.version>2.1.6</jakarta.ws.rs-api.version>
+ <jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
+ <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
+ <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
+ <jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>
<java-websocket.version>1.5.4</java-websocket.version>
<jcip-annotations.version>1.0-1</jcip-annotations.version>
- <!-- This is the last version to support the javax namespace -->
- <jersey.version>2.40</jersey.version>
- <!-- This was the last version to support Java 8 -->
- <jetty.version>9.4.58.v20250814</jetty.version>
+ <jersey.version>3.1.11</jersey.version>
+ <jetty.version>12.0.36</jetty.version>
<jline.version>3.26.2</jline.version>
<jna.version>5.14.0</jna.version>
<jtransforms.version>3.1</jtransforms.version>
<junit.version>4.13.2</junit.version>
- <!-- This was the last version to support Java 8 -->
- <logback.version>1.3.16</logback.version>
+ <logback.version>1.5.34</logback.version>
<lz4-java.version>1.10.1</lz4-java.version>
<maven.assembly.version>3.6.0</maven.assembly.version>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
+ <maven.compiler.source>17</maven.compiler.source>
+ <maven.compiler.target>17</maven.compiler.target>
<micrometer.version>1.11.4</micrometer.version>
<milo.version>0.6.14</milo.version>
<!-- It seems that powermock is having issues with the newest mockito
versions -->
<mockito.version>2.23.4</mockito.version>
- <!-- This was the last version to support Java 8 -->
<!--mockito.version>4.11.0</mockito.version-->
<moquette.version>0.18.0</moquette.version>
<netty.version>4.1.134.Final</netty.version>
- <!-- This was the last version to support Java 8 -->
- <openapi.generator.version>6.6.0</openapi.generator.version>
+ <openapi.generator.version>7.10.0</openapi.generator.version>
<osgi.version>7.0.0</osgi.version>
<pax-jdbc-common.version>1.5.6</pax-jdbc-common.version>
<powermock.version>2.0.9</powermock.version>
@@ -151,8 +139,7 @@
<spotless.skip>false</spotless.skip>
<spotless.version>2.44.5</spotless.version>
<clang.format.version>17.0.6</clang.format.version>
- <!-- This was the last version to support Java 8 -->
- <swagger.version>1.6.14</swagger.version>
+ <swagger.version>2.2.50</swagger.version>
<thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
<thrift.exec.absolute.path/>
<!--
@@ -164,7 +151,7 @@
<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.1-260520-SNAPSHOT</tsfile.version>
+ <tsfile.version>2.3.2-260608-SNAPSHOT</tsfile.version>
<i18n.locale>en</i18n.locale>
<tsfile.locale.opt/>
</properties>
@@ -293,6 +280,11 @@
<artifactId>jsr305</artifactId>
<version>${findbugs.jsr305.version}</version>
</dependency>
+ <dependency>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
+ <version>${jakarta.annotation-api.version}</version>
+ </dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
@@ -487,29 +479,24 @@
<version>${xz.version}</version>
</dependency>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-annotations</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-annotations-jakarta</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-models</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-models-jakarta</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-jaxrs</artifactId>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-jaxrs2-jakarta</artifactId>
+ <version>${swagger.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-integration-jakarta</artifactId>
<version>${swagger.version}</version>
- <exclusions>
- <exclusion>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.fusesource.mqtt-client</groupId>
@@ -577,8 +564,8 @@
<version>${jetty.version}</version>
<exclusions>
<exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
@@ -593,8 +580,8 @@
<version>${jersey.version}</version>
</dependency>
<dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-servlet</artifactId>
+ <groupId>org.eclipse.jetty.ee10</groupId>
+ <artifactId>jetty-ee10-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
@@ -663,8 +650,8 @@
<version>${jackson.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.jaxrs</groupId>
- <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
+ <artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
@@ -698,10 +685,11 @@
<version>2.18.0</version>
</dependency>
<!-- Conflict:
- jackson-json-provider (pulls in 2.15.2),
+ jackson-jakarta-rs-json-provider (pulls in 2.15.2),
jackson-databind (pulls in 2.15.2),
jackson-databind-jsd310 (pulls in 2.15.2),
- swagger-jaxrs (pulls in 2.14.2)
+ swagger-jaxrs2-jakarta (pulls in 2.15.2),
+ swagger-integration-jakarta (pulls in 2.15.2)
-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@@ -834,7 +822,7 @@
<style>GOOGLE</style>
</googleJavaFormat>
<importOrder>
- <order>org.apache.iotdb,,javax,java,\#</order>
+
<order>org.apache.iotdb,,jakarta,javax,java,\#</order>
</importOrder>
<removeUnusedImports/>
</java>
@@ -1055,7 +1043,7 @@
</plugin>
<!--
Strange things usually happen if you run with a too low Java version.
- This plugin not only checks the minimum java version of 1.8, but also
+ This plugin not only checks the minimum java version of 17, but also
checks all dependencies (and transitive dependencies) for reported
CVEs.
-->
<plugin>
@@ -1127,7 +1115,7 @@
<fail>true</fail>
<rules>
<requireJavaVersion>
- <version>1.8.0</version>
+ <version>[17,)</version>
</requireJavaVersion>
<banVulnerable
implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies">
<excludeCoordinates>
@@ -1157,15 +1145,6 @@
<version>2.4.8</version>
</exclude>
<!--
- We can't update to a fixed version as we're stuck with
this version
- as it was the last to support the javax namespace.
- -->
- <exclude>
-
<groupId>org.glassfish.jersey.core</groupId>
-
<artifactId>jersey-common</artifactId>
- <version>2.4.8</version>
- </exclude>
- <!--
TODO: For this CVE no fix exists yet, however we should
keep an eye on this:
https://docs.google.com/presentation/d/1W5KU7ffh4dheR8iD54ulABImi6byAhSI-OhEKw2adRo/edit#slide=id.gaf11915f86_0_0
-->
@@ -1472,14 +1451,14 @@
</properties>
</profile>
<profile>
- <id>.java-9-and-above</id>
+ <id>.java-17-and-above</id>
<activation>
- <jdk>[9,)</jdk>
+ <jdk>[17,)</jdk>
</activation>
<properties>
- <maven.compiler.release>8</maven.compiler.release>
+ <maven.compiler.release>17</maven.compiler.release>
<!--
- Add argLine for Java 9 and above, due to
+ Add argLine for Java 17 and above, due to
[JEP 260: Encapsulate Most Internal APIs],
[JEP 396: Strongly Encapsulate JDK Internals by Default],
[JEP 403: Strongly Encapsulate JDK Internals]
@@ -1499,14 +1478,14 @@
]]></argLine>
</properties>
</profile>
- <!-- Current version of spotless cannot support JDK11 below -->
+ <!-- Current version of spotless cannot support JDK17 below -->
<profile>
<id>.java-17-below</id>
<activation>
<jdk>(,17)</jdk>
</activation>
<properties>
- <!-- This was the last version to support Java 8, Just for run
-->
+ <!-- Keep old Spotless disabled when running below the minimum
supported JDK. -->
<spotless.version>2.27.1</spotless.version>
<!-- To avoid format conflicts -->
<spotless.skip>true</spotless.skip>
@@ -1586,7 +1565,7 @@
</goals>
<phase>generate-sources</phase>
<configuration>
- <generator>java</generator>
+
<generator>java:generated_annotations=suppress</generator>
</configuration>
</execution>
<execution>
diff --git a/scripts/conf/confignode-env.sh b/scripts/conf/confignode-env.sh
index 6cf29cb32da..89be12c3e01 100644
--- a/scripts/conf/confignode-env.sh
+++ b/scripts/conf/confignode-env.sh
@@ -201,53 +201,37 @@ fi
java_ver_output=`"$JAVA" -version 2>&1`
jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"'
'NR==1 {print $2}' | cut -d\- -f1`
JVM_VERSION=${jvmver%_*}
-JVM_PATCH_VERSION=${jvmver#*_}
-if [ "$JVM_VERSION" \< "1.8" ] ; then
- echo "IoTDB requires Java 8u92 or later."
- exit 1;
+version_arr=(${JVM_VERSION//./ })
+if [ "${version_arr[0]}" = "1" ] ; then
+ MAJOR_VERSION=${version_arr[1]}
+else
+ MAJOR_VERSION=${version_arr[0]}
fi
-if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt 92 ] ; then
- echo "IoTDB requires Java 8u92 or later."
+if [ "$MAJOR_VERSION" -lt 17 ] ; then
+ echo "IoTDB requires Java 17 or later."
exit 1;
fi
-version_arr=(${JVM_VERSION//./ })
-
illegal_access_params=""
#GC log path has to be defined here because it needs to access CONFIGNODE_HOME
-if [ "${version_arr[0]}" = "1" ] ; then
- # Java 8
- MAJOR_VERSION=${version_arr[1]}
- echo "$CONFIGNODE_JMX_OPTS" | grep -q "^-[X]loggc"
- if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
- # only add -Xlog:gc if it's not mentioned in jvm-server.options file
- mkdir -p ${CONFIGNODE_HOME}/logs
- if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
- CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS
-Xloggc:${CONFIGNODE_HOME}/logs/gc.log -XX:+PrintGCDateStamps
-XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime
-XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=10M"
- fi
- fi
-else
- #JDK 11 and others
- MAJOR_VERSION=${version_arr[0]}
- # See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for
details about the syntax
- # The following is the equivalent to -XX:+PrintGCDetails
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
- echo "$CONFIGNODE_JMX_OPTS" | grep -q "^-[X]log:gc"
- if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
- # only add -Xlog:gc if it's not mentioned in jvm-server.options file
- mkdir -p ${CONFIGNODE_HOME}/logs
- if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
- CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS
-Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${CONFIGNODE_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
- fi
+# See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for
details about the syntax
+# The following is the equivalent to -XX:+PrintGCDetails
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
+echo "$CONFIGNODE_JMX_OPTS" | grep -q "^-[X]log:gc"
+if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
+ # only add -Xlog:gc if it's not mentioned in jvm-server.options file
+ mkdir -p ${CONFIGNODE_HOME}/logs
+ if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
+ CONFIGNODE_JMX_OPTS="$CONFIGNODE_JMX_OPTS
-Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${CONFIGNODE_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
fi
- # Add argLine for Java 11 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default] (https://openjdk.java.net/jeps/396)
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.nio=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.io=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.net=ALL-UNNAMED"
fi
+# Add argLine for Java 17 and above, due to [JEP 396: Strongly Encapsulate JDK
Internals by Default] (https://openjdk.java.net/jeps/396)
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.nio=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.io=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.net=ALL-UNNAMED"
calculate_memory_sizes
@@ -333,4 +317,3 @@ fi
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/confignode-env.sh."
-
diff --git a/scripts/conf/datanode-env.sh b/scripts/conf/datanode-env.sh
index f600066a848..be049774088 100755
--- a/scripts/conf/datanode-env.sh
+++ b/scripts/conf/datanode-env.sh
@@ -207,59 +207,40 @@ fi
java_ver_output=`"$JAVA" -version 2>&1`
jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"'
'NR==1 {print $2}' | cut -d\- -f1`
JVM_VERSION=${jvmver%_*}
-JVM_PATCH_VERSION=${jvmver#*_}
-if [ "$JVM_VERSION" \< "1.8" ] ; then
- echo "IoTDB requires Java 8u92 or later."
- exit 1;
+version_arr=(${JVM_VERSION//./ })
+if [ "${version_arr[0]}" = "1" ] ; then
+ MAJOR_VERSION=${version_arr[1]}
+else
+ MAJOR_VERSION=${version_arr[0]}
fi
-if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt 92 ] ; then
- echo "IoTDB requires Java 8u92 or later."
+if [ "$MAJOR_VERSION" -lt 17 ] ; then
+ echo "IoTDB requires Java 17 or later."
exit 1;
fi
-version_arr=(${JVM_VERSION//./ })
-
illegal_access_params=""
#GC log path has to be defined here because it needs to access IOTDB_HOME
-if [ "${version_arr[0]}" = "1" ] ; then
- # Java 8
- MAJOR_VERSION=${version_arr[1]}
- echo "$IOTDB_JMX_OPTS" | grep -q "^-[X]loggc"
- if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
- # only add -Xlog:gc if it's not mentioned in jvm-server.options file
- mkdir -p ${IOTDB_HOME}/logs
- if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
- IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xloggc:${IOTDB_HOME}/logs/gc.log
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime
-XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=10M"
- # For more detailed GC information, you can uncomment option below.
- # NOTE: more detailed GC information may bring larger GC log files.
- # IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS
-Xloggc:${IOTDB_HOME}/logs/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure
-XX:+UseGCLogFileRotation -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC
-XX:+PrintReferenceGC -XX:+PrintSafepointStatistics
-XX:PrintSafepointStatisticsCount=1 -XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=100M"
- fi
- fi
-else
- #JDK 11 and others
- MAJOR_VERSION=${version_arr[0]}
- # See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for
details about the syntax
- # The following is the equivalent to -XX:+PrintGCDetails
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
- echo "$IOTDB_JMX_OPTS" | grep -q "^-[X]log:gc"
- if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
- # only add -Xlog:gc if it's not mentioned in jvm-server.options file
- mkdir -p ${IOTDB_HOME}/logs
- if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
- IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS
-Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
- # For more detailed GC information, you can uncomment option below.
- # NOTE: more detailed GC information may bring larger GC log files.
- # IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS
-Xlog:gc*=debug,heap*=debug,age*=trace,metaspace*=info,safepoint*=debug,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level,tags:filecount=10,filesize=100M"
- fi
+# See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for
details about the syntax
+# The following is the equivalent to -XX:+PrintGCDetails
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
+echo "$IOTDB_JMX_OPTS" | grep -q "^-[X]log:gc"
+if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
+ # only add -Xlog:gc if it's not mentioned in jvm-server.options file
+ mkdir -p ${IOTDB_HOME}/logs
+ if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
+ IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS
-Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
+ # For more detailed GC information, you can uncomment option below.
+ # NOTE: more detailed GC information may bring larger GC log files.
+ # IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS
-Xlog:gc*=debug,heap*=debug,age*=trace,metaspace*=info,safepoint*=debug,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level,tags:filecount=10,filesize=100M"
fi
- # Add argLine for Java 11 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default] (https://openjdk.java.net/jeps/396)
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.nio=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.io=ALL-UNNAMED"
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.net=ALL-UNNAMED"
fi
+# Add argLine for Java 17 and above, due to [JEP 396: Strongly Encapsulate JDK
Internals by Default] (https://openjdk.java.net/jeps/396)
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.util=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.nio=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.io=ALL-UNNAMED"
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.net=ALL-UNNAMED"
calculate_memory_sizes
@@ -369,4 +350,3 @@ fi
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/datanode-env.sh."
-
diff --git a/scripts/sbin/start-cli.sh b/scripts/sbin/start-cli.sh
index 05572627878..60a788dc1ef 100755
--- a/scripts/sbin/start-cli.sh
+++ b/scripts/sbin/start-cli.sh
@@ -148,17 +148,20 @@ JVM_VERSION=${jvmver%_*}
version_arr=(${JVM_VERSION//./ })
illegal_access_params=""
-#GC log path has to be defined here because it needs to access IOTDB_HOME
if [ "${version_arr[0]}" = "1" ] ; then
- # Java 8
MAJOR_VERSION=${version_arr[1]}
else
- #JDK 11 and others
MAJOR_VERSION=${version_arr[0]}
- # Add argLine for Java 11 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default] (https://openjdk.java.net/jeps/396)
- illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
fi
+if [ "$MAJOR_VERSION" -lt 17 ] ; then
+ echo "IoTDB requires Java 17 or later."
+ exit 1
+fi
+
+# Add argLine for Java 17 and above, due to [JEP 396: Strongly Encapsulate JDK
Internals by Default] (https://openjdk.java.net/jeps/396)
+illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
+
JVM_OPTS="-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"
set -o noglob
diff --git a/scripts/sbin/windows/start-confignode.bat
b/scripts/sbin/windows/start-confignode.bat
index 64efa6f5580..3cedfe3c6a9 100644
--- a/scripts/sbin/windows/start-confignode.bat
+++ b/scripts/sbin/windows/start-confignode.bat
@@ -46,15 +46,15 @@ for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java
-fullversion 2^>^&1') do (
set JAVA_VERSION=%MAJOR_VERSION%
-@REM we do not check jdk that version less than 1.8 because they are too
stale...
-IF "%JAVA_VERSION%" == "6" (
- echo IoTDB only supports jdk >= 8, please check your java version.
- goto finally
-)
-IF "%JAVA_VERSION%" == "7" (
- echo IoTDB only supports jdk >= 8, please check your java version.
- goto finally
-)
+ @REM IoTDB requires JDK 17 or later.
+ IF "%JAVA_VERSION%" == "" (
+ echo Failed to determine Java version. IoTDB only supports jdk
^>= 17, please check your java installation.
+ goto finally
+ )
+ IF %JAVA_VERSION% LSS 17 (
+ echo IoTDB only supports jdk ^>= 17, please check your java
version.
+ goto finally
+ )
if "%OS%" == "Windows_NT" setlocal
@@ -178,4 +178,4 @@ pause
:finally
@ENDLOCAL
-pause
\ No newline at end of file
+pause
diff --git a/scripts/sbin/windows/start-datanode.bat
b/scripts/sbin/windows/start-datanode.bat
index 0cf3e648783..761641c22fc 100755
--- a/scripts/sbin/windows/start-datanode.bat
+++ b/scripts/sbin/windows/start-datanode.bat
@@ -48,15 +48,15 @@ for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java
-fullversion 2^>^&1') do (
set JAVA_VERSION=%MAJOR_VERSION%
-@REM we do not check jdk that version less than 1.8 because they are too
stale...
-IF "%JAVA_VERSION%" == "6" (
- echo IoTDB only supports jdk >= 8, please check your java version.
- goto finally
-)
-IF "%JAVA_VERSION%" == "7" (
- echo IoTDB only supports jdk >= 8, please check your java version.
- goto finally
-)
+ @REM IoTDB requires JDK 17 or later.
+ IF "%JAVA_VERSION%" == "" (
+ echo Failed to determine Java version. IoTDB only supports jdk
^>= 17, please check your java installation.
+ goto finally
+ )
+ IF %JAVA_VERSION% LSS 17 (
+ echo IoTDB only supports jdk ^>= 17, please check your java
version.
+ goto finally
+ )
@REM
-----------------------------------------------------------------------------
@REM SET DIR
@@ -224,4 +224,3 @@ pause
:finally
@ENDLOCAL
pause
-
diff --git a/scripts/tools/ops/health_check.sh
b/scripts/tools/ops/health_check.sh
index 3997ee848b6..b538305f32c 100644
--- a/scripts/tools/ops/health_check.sh
+++ b/scripts/tools/ops/health_check.sh
@@ -316,7 +316,7 @@ local_dirs_check() {
local_jdk_check() {
echo "Check: Installation Environment(JDK)"
- echo "Requirement: JDK Version >=1.8"
+ echo "Requirement: JDK Version >=17"
if [ -z $JAVA ] ; then
echo "Result: Unable to find java executable. Check JAVA_HOME and PATH
environment variables. "
diff --git a/scripts/tools/windows/ops/health_check.bat
b/scripts/tools/windows/ops/health_check.bat
index e33876cc777..f8e87709efc 100644
--- a/scripts/tools/windows/ops/health_check.bat
+++ b/scripts/tools/windows/ops/health_check.bat
@@ -164,7 +164,7 @@ exit /b
:local_jdk_check
echo Check: Installation Environment(JDK)
-echo Requirement: JDK Version ^>=1.8
+echo Requirement: JDK Version ^>=17
echo Result: JDK Version %JAVA_VERSION%
exit /b
@@ -635,4 +635,4 @@ for /f "delims=" %%i in ('powershell -NoProfile -Command
"$v=$host.Version.Major
echo %command_line% | findstr /i /c:"iotdb" >nul && set is_iotdb=1
endlocal & set "is_iotdb=%is_iotdb%"
-exit /b
\ No newline at end of file
+exit /b