Skip to content

Raise Java baseline & ensure FBA runs cleanly on Java 22 (deprecate Java 8) #91

Description

@xts-Michi

Issue: Raise Java baseline to 17 & ensure FBA runs cleanly on JDK 22+

Summary

SBSCL currently targets Java 8. This issue proposes to raise the minimum required Java version to 17 (LTS) and to verify FBA runs cleanly on JDK 22+. This removes Java 8 support and the related maintenance burden.

Motivation

  • Modern JDKs (17/22+) provide security, performance, and tooling improvements.
  • Avoid brittle JAXP conflicts on newer JDKs (e.g., AbstractMethodError in Log4j2 XML config when legacy XML parsers shadow the JDK’s).
  • Simplify build, CI, and contributor experience.

Proposed Change

  • Set baseline to Java 17: update maven-compiler-plugin to <release>17</release>.
  • CI matrix: test on JDK 17 (LTS) and JDK 22+.
  • Classpath hardening: remove/avoid legacy XML parser stack (xercesImpl, xml-apis, xalan) so the JDK’s JAXP is used.
  • Docs: update README.md / INSTALL.md to state Java 17+ is required.

Observed Behavior (current)

  • On JDK 22, early failures can occur in Log4j2 XML config if legacy XML parsers take precedence over the JDK’s, leading to AbstractMethodError.
    Removing those legacy parsers allows the FBA path to initialize and solve as expected.

Impact / Compatibility

  • Breaking change: downstream users must run on Java 17+.
  • Build and runtime get simpler; fewer surprises on modern JDKs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    on holdPaused until a prerequisite is completed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions