Skip to content

Improve / Clarify Minimum Quarkus Version Support #1924

@TomCools

Description

@TomCools

Describe the bug
For our Quarkus integration, we have some dependencies on Jandex methods. However, some of the methods we use are relatively new. This means that if people migrate from OptaPlanner to Timefold, they also need to upgrade to "some" version of Quarkus. (3.20.1, May 20 2025, or > 3.22.0, which contain the upgrade to Jandex 3.3.0)

[error]: Build step ai.timefold.solver.quarkus.deployment.TimefoldProcessor#recordAndRegisterBuildTimeBeans threw an exception: java.lang.NoSuchMethodError: 'java.util.Collection org.jboss.jandex.IndexView.getAllKnownImplementations(org.jboss.jandex.DotName)'

Expected behavior
I expect that a migration from OptaPlanner either:

  • Explicitly mentions the minimal Quarkus version, either in the docs and/or at runtime. (3.20.1 or > 3.22.0)
  • Does not show these errors because we've worked around them (on reflective use we see the methods we need do not exist, or we do not use newer methods)

Actual behavior
We get a vague stacktrace, something with Jandex. We can't expect our consumers to know that.

To Reproduce
Lower the Quarkus version of any project (like our quickstarts) to 3.20.0.

Environment

Timefold Solver Version or Git ref: 1.28.0

Output of java -version: OpenJDK Runtime Environment Zulu17.62+17-CA (build 17.0.17+10-LTS)

Additional information

Ran into this issue while retesting our migration guide / scripts, using https://github.com/apache/incubator-kie-optaplanner-quickstarts/use-cases/employee-scheduling as a test run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    process/needs triageRequires initial assessment of validity, priority etc.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions