Upgrade minimum JDK to 17 and migrate JavaX to Jakarta#17859
Conversation
09cc234 to
ba97eb7
Compare
76b6645 to
6bc0035
Compare
|
I think this PR needs to regenerate dependencies.json after the REST/Jakarta dependency changes. dependencies.json is used by -Penable-sbom-check via src/main/groovy/checkDependencies.groovy, and the new
Because the check fails on any dependency added by the current build but missing from dependencies.json, release/SBOM validation can fail even if normal compilation passes. Please regenerate dependencies.json from the transformed SBOM and re-check LICENSE-binary for the newly bundled REST/Jakarta dependencies as well. |
6bc0035 to
c7b9bf3
Compare
c7b9bf3 to
ca3df0a
Compare
323a1b1 to
f80618e
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #17859 +/- ##
============================================
- Coverage 40.83% 40.82% -0.02%
Complexity 2611 2611
============================================
Files 5201 5201
Lines 353904 353654 -250
Branches 45284 45268 -16
============================================
- Hits 144508 144366 -142
+ Misses 209396 209288 -108 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
CritasWang
left a comment
There was a problem hiding this comment.
This PR is described as a JDK 17 + JavaX→Jakarta migration, but it also carries a functional behavior change to TsFile time-column decoding that is unrelated to the migration:
- iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/AlignedSinglePageWholeChunkReader.java:184
defaultTimeDecoder → getTimeDecoder(timeChunkHeader.getEncodingType()) - iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/SinglePageWholeChunkReader.java:90
defaultTimeDecoder → getConfiguredTimeDecoder()
Both getTimeDecoder(...) and getConfiguredTimeDecoder() are new APIs that do not exist in the current IoTDB tree — they come from the upgraded TsFile parent class (AbstractChunkReader), which is why this change is coupled to the TsFile version bump in pom.xml:
- <tsfile.version>2.3.x-SNAPSHOT</tsfile.version>
- <tsfile.version>2.3.2-260608-SNAPSHOT</tsfile.version>
This looks like a genuine fix (the time decoder was previously hard-coded to the default instead of honoring the actual chunk encoding type), but it has real runtime behavior implications for the pipe TsFile-parsing path and deserves its own review, commit message, and test coverage rather than being hidden inside a 262-file migration diff.
Request: please either
- if it must stay, call it out explicitly in the PR description and add/point to tests that exercise the changed decoding path.
|
Thanks @CritasWang, good catch. You are right that this is not a pure namespace migration change. This adaptation is required by the TsFile snapshot bump that is part of the JDK 17 upgrade path: without updating these call sites to the decoder accessors exposed by the upgraded TsFile reader APIs, this branch cannot compile/pass CI after the TsFile upgrade. Splitting it out into a standalone PR would also be difficult because that standalone change depends on the same TsFile/JDK17 upgrade context. I have updated the PR description to call this out explicitly. I will keep this change in this PR, but will make sure it is reviewed as a behavior-sensitive TsFile parsing adaptation and add/point to dedicated coverage for the affected time-decoding path. |
|




Summary
@Generatedannotations because the current bundled Thrift 0.14.1 generator does not supportjakarta.annotation.Generated.Notes
javax.annotation.Nonnull,javax.annotation.Nullable, andjavax.annotation.concurrentremain where used because they are static annotations and do not block the Jakarta runtime migration.Validation
mvn clean package -pl distribution -am -DskipTestsmvn compile -pl external-service-impl/rest-openapi,external-service-impl/rest -DskipTestsmvn clean compile -pl iotdb-protocol/thrift-commons,iotdb-protocol/thrift-datanode,iotdb-protocol/thrift-confignode,iotdb-protocol/thrift-ainode,iotdb-protocol/thrift-consensus -am -DskipTestsmvn compile -pl iotdb-core/node-commons,iotdb-core/calc-commons,iotdb-core/confignode -DskipTestsmvn spotless:apply -pl iotdb-core/calc-commons,iotdb-core/node-commons,iotdb-core/confignode,iotdb-core/datanode,external-service-impl/rest -DskipTestsmvn spotless:apply -pl integration-test -P with-integration-tests -DskipTests