Description
pom.xml includes --enable-preview in compiler args, but the codebase doesn't use any Java preview features.
Problem Location
pom.xml lines 149, 169:
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
<additionalOptions>
<additionalOption>--enable-preview</additionalOption>
</additionalOptions>
Surefire test args line 238:
<argLine>@{argLine} --enable-preview --enable-native-access=ALL-UNNAMED</argLine>
Analysis
Searched codebase for Java preview features:
- No pattern matching enhancements
- No record patterns (records are stable in Java 21)
- No virtual threads preview APIs
- No structured concurrency
- No scoped values
- No string templates (preview in Java 21)
The only "preview" mentions in code refer to dry-run preview mode, not Java language features.
Impact
- Confusion: Implies code uses unstable features when it doesn't
- Build warnings: May generate warnings about preview features
- Documentation burden: Requires explaining why preview is enabled
- Future compatibility: Preview features may change in future Java versions
Recommended Fix
Remove all --enable-preview flags:
<!-- Compiler Plugin -->
<compilerArgs>
<arg>-parameters</arg>
<!-- Remove: <arg>--enable-preview</arg> -->
</compilerArgs>
<!-- Javadoc Plugin -->
<!-- Remove: <additionalOption>--enable-preview</additionalOption> -->
<!-- Surefire Plugin -->
<argLine>@{argLine} --enable-native-access=ALL-UNNAMED</argLine>
Note: Keep --enable-native-access=ALL-UNNAMED as it may be needed for native libraries (jcurses).
Description
pom.xml includes
--enable-previewin compiler args, but the codebase doesn't use any Java preview features.Problem Location
pom.xml lines 149, 169:
Surefire test args line 238:
Analysis
Searched codebase for Java preview features:
The only "preview" mentions in code refer to dry-run preview mode, not Java language features.
Impact
Recommended Fix
Remove all
--enable-previewflags:Note: Keep
--enable-native-access=ALL-UNNAMEDas it may be needed for native libraries (jcurses).