feat: introduce an optimization model support as a preview#2307
Conversation
triceo
left a comment
There was a problem hiding this comment.
Had to submit the PR (non-draft), so that I can post comments.
I do not comment on the structure inside of the model/ directory - those are your choices. My comments apply on the boundaries, and where your choices proliferate to the top-level.
There was a problem hiding this comment.
Pull request overview
This PR introduces a Maven pom.xml structure to support an SDK/model sub-tree and switches the build to CI-friendly versions via ${revision} (with flattening), aligning module parent versions across the repository.
Changes:
- Replaced hardcoded
999-SNAPSHOTparent versions with${revision}across existing modules. - Added
${revision}+flatten-maven-pluginconfiguration to the root build and introduced a newmodel/multi-module subtree. - Extended the solver BOM to include the new model artifacts and added default Maven config to disable model processing.
Reviewed changes
Copilot reviewed 63 out of 63 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/pom.xml | Switch parent version to ${revision}. |
| tools/migration/pom.xml | Switch parent version to ${revision}. |
| tools/benchmark/pom.xml | Switch parent version to ${revision}. |
| tools/benchmark-aggregator/pom.xml | Switch parent version to ${revision}. |
| spring-integration/spring-boot-starter/pom.xml | Switch parent version to ${revision}. |
| spring-integration/spring-boot-integration-test/pom.xml | Switch parent version to ${revision}. |
| spring-integration/spring-boot-autoconfigure/pom.xml | Switch parent version to ${revision}. |
| spring-integration/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/runtime/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/reflection-integration-test/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/integration-test/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/devui-integration-test/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus/deployment/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-jackson/runtime/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-jackson/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-jackson/integration-test/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-jackson/deployment/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-benchmark/runtime/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-benchmark/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-benchmark/integration-test/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/quarkus-benchmark/deployment/pom.xml | Switch parent version to ${revision}. |
| quarkus-integration/pom.xml | Switch parent version to ${revision}. |
| pom.xml | Introduce ${revision}, configure flatten-maven-plugin, add model module. |
| persistence/pom.xml | Switch parent version to ${revision}. |
| persistence/jpa/pom.xml | Switch parent version to ${revision}. |
| persistence/jaxb/pom.xml | Switch parent version to ${revision}. |
| persistence/jackson/pom.xml | Switch parent version to ${revision}. |
| model/tools/maven-plugin/pom.xml | Add new Maven plugin module POM for model tooling. |
| model/test/pom.xml | Add new model test-support module POM. |
| model/test-model/pom.xml | Add new test model module POM (profile-driven module). |
| model/solver-worker/pom.xml | Add new solver worker module POM. |
| model/rest/pom.xml | Add new REST module POM for model SDK. |
| model/rest-definition/pom.xml | Add new REST types/definitions module POM. |
| model/quarkus/runtime/pom.xml | Add new Quarkus extension runtime module POM. |
| model/quarkus/pom.xml | Add new Quarkus extension parent aggregator POM. |
| model/quarkus/integration-tests/pom.xml | Add new Quarkus integration-tests module POM. |
| model/quarkus/deployment/pom.xml | Add new Quarkus extension deployment module POM. |
| model/pom.xml | Add model root parent/aggregator POM (includes flatten + distributionManagement). |
| model/model-defaults/pom.xml | Add model defaults module POM. |
| model/maps/service-test/pom.xml | Add maps service test module POM. |
| model/maps/service-rest/pom.xml | Add maps service REST module POM. |
| model/maps/service-integration/pom.xml | Add maps service integration module POM. |
| model/maps/service-client/pom.xml | Add maps service client module POM. |
| model/maps/pom.xml | Add maps integration aggregator POM. |
| model/maps/haversine/pom.xml | Add haversine module POM. |
| model/maps/api/pom.xml | Add maps API module POM. |
| model/json/pom.xml | Add JSON integration module POM. |
| model/jackson/pom.xml | Add Jackson integration module POM. |
| model/facade/sdk/pom.xml | Add SDK facade dependency-aggregator POM (no maps). |
| model/facade/sdk-with-maps/pom.xml | Add SDK facade dependency-aggregator POM (with maps). |
| model/facade/sdk-model-parent/pom.xml | Add SDK model parent POM with profiles/plugins for model builds. |
| model/facade/sdk-model-base-parent/pom.xml | Add SDK model base parent POM (dependency management + enterprise profile). |
| model/definition/pom.xml | Add model definition module POM. |
| model/build/config/pom.xml | Add model config module POM. |
| model/build/build-support/pom.xml | Add model build-support module POM. |
| model/build/build-parent/pom.xml | Add model build-parent POM (dependencies/plugins management for model subtree). |
| docs/pom.xml | Switch parent version to ${revision}. |
| core/pom.xml | Switch parent version to ${revision}. |
| build/ide-config/pom.xml | Switch parent version to ${revision}. |
| build/build-parent/pom.xml | Switch parent version to ${revision}. |
| build/bom/pom.xml | Add model artifacts (and plugin) to solver BOM. |
| .mvn/maven.config | Add default system property to disable model processing. |
triceo
left a comment
There was a problem hiding this comment.
Good when Sonar is B or better.
|


To illustrate the inclusion of the SDK.
Enterprise Solver: https://github.com/TimefoldAI/timefold-solver-enterprise/pull/538
This PR will only get merge with the full content later.