-
Notifications
You must be signed in to change notification settings - Fork 164
Description
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.