Conversation
Update build to target ThingsBoard 4.4.0-SNAPSHOT which requires Java 25. Bump lombok to 1.18.40, add surefire JVM args for Mockito compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This pull request attempts to migrate the ThingsBoard rule-node-examples project from Java 17 to Java 25, updating Maven compiler configurations, adding JVM arguments for Java 21+ test compatibility, upgrading Lombok, and bumping the ThingsBoard dependency version. However, there are critical issues with non-existent versions being referenced.
Changes:
- Update Java compiler target from 17 to 25 across pom.xml properties and maven-compiler-plugin configuration
- Add
-parameterscompiler flag and Surefire JVM args (-XX:+EnableDynamicAgentLoading,--add-opens) for modern Java compatibility - Upgrade Lombok from 1.18.38 to 1.18.40 and bump ThingsBoard version from 4.3.0.1 to 4.4.0-SNAPSHOT
- Update documentation (README.md) and Dockerfile base image to reflect Java 25 and version 4.4.0-SNAPSHOT
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| pom.xml | Updates Java version to 25, adds compiler source/target properties, upgrades Lombok to 1.18.40, configures Surefire plugin with Java 21+ JVM args, and bumps ThingsBoard and Spring Boot versions |
| README.md | Updates JDK requirement to 25+ and Docker build command to reference version 4.4.0-SNAPSHOT |
| Dockerfile | Updates base image from thingsboard/tb-node:4.3.0.1 to 4.4.0-SNAPSHOT |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…eters flag Upgrade maven-compiler-plugin from 3.11.0 to 3.13.0 for better Java 25 support. Remove -parameters compiler flag as this project has no Spring components that require method parameter name retention. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ViacheslavKlimov
left a comment
There was a problem hiding this comment.
Summary
Reviewed 3 changed files in Migration to Java 25. Found 0 high-confidence issue(s) and 1 low-confidence observation(s) commented inline.
This review was auto-generated by Claude. Findings may contain errors — please verify before applying changes.
| <lombok.version>1.18.38</lombok.version> | ||
| <thingsboard.version>4.4.0</thingsboard.version> | ||
| <lombok.version>1.18.40</lombok.version> | ||
| <maven.compiler.source>25</maven.compiler.source> |
There was a problem hiding this comment.
Low-confidence observation: maven.compiler.source and maven.compiler.target are redundant when the compiler plugin already specifies <release>25</release> (line 195). The --release flag is a superset that sets source level, target level, and boot classpath in one go. Having both shouldn't cause problems, but if they ever drift apart it could lead to confusing build behavior. Consider removing these two properties and relying solely on <release>.
Summary
maven-compiler-pluginrelease target from 17 to 25maven-surefire-pluginJVM args (-XX:+EnableDynamicAgentLoading,--add-opens) required for Mockito/ByteBuddy on Java 21+Details
Build-configuration only change — no Java source code modifications. All existing source code is compatible with Java 25 as-is.
lombok.version1.18.381.18.40maven.compiler.source/target25maven-compiler-pluginrelease1725Verification
The build with tests is passing:

Freshly built custom node working fine with ThingsBoard 4.4:
