Hi Igniters, +1 for using modern Java features in new code.
After moving to Java 17, we should not artificially restrict ourselves to older coding patterns. At the same time, perhaps we should think twice before introducing large syntax-only refactoring patches and instead adopt new features gradually. Sincerely, Dmitriy Pavlov чт, 18 июн. 2026 г. в 12:35, Aleksandr Chesnokov <[email protected]>: > Hi, Igniters! > > Following the recent migration of the Ignite 2 master branch to JDK 17 and > the decision to drop JDK 11 support starting with 2.19.0, I'd like to start > a discussion about the usage of newer Java language features in the Ignite > 2 codebase and whether some conventions should be documented in coding > guidelines [0]. > > Examples include: > > > - var > - pattern matching for instanceof > - records > - text blocks for multiline strings > - other language features introduced between Java 11 and Java 17 > > The goal is to understand which features we want to encourage, which should > be used with limitations, and whether any rules should be enforced through > coding guidelines or code style checks in CI. > > Questions for discussion: > > 1. Which Java 17 language features should be allowed in new Ignite 2 > code? > 2. Are there features we should avoid despite them being available? > 3. Should any conventions be added to coding guidelines? > 4. Would it make sense to enforce some of them via Checkstyle? > > As a reference, [1] is a summary of language changes across Java releases: > > [0] https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines > > [1] https://javaevolved.github.io >
