Skip to content

Improve / Clarify Minimum Quarkus Version Support #1924

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

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions