From bde607cc4392e1f06498d5404595550bcdd75208 Mon Sep 17 00:00:00 2001 From: rsynek Date: Thu, 5 Nov 2026 14:35:41 +0100 Subject: [PATCH 1/9] chore: make demo data a preview API --- .../src/build/revapi-differences.json | 30 +++++++++++++++++++ .../demo}/AbstractBasicDemoDataGenerator.java | 2 +- .../data => preview/api/demo}/DemoData.java | 2 +- .../api/demo}/DemoDataConfigEntry.java | 2 +- .../api/demo}/DemoDataGenerator.java | 2 +- .../api/demo}/DemoMetaData.java | 2 +- .../definition/api/data/DemoMetaDataTest.java | 2 ++ .../TimefoldModelDescriptorProcessor.java | 6 ++-- .../deployment/TimefoldRESTProcessor.java | 4 +-- .../rest/impl/AbstractDemoDataResource.java | 4 +-- 10 files changed, 44 insertions(+), 12 deletions(-) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/data => preview/api/demo}/AbstractBasicDemoDataGenerator.java (97%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/data => preview/api/demo}/DemoData.java (84%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/data => preview/api/demo}/DemoDataConfigEntry.java (85%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/data => preview/api/demo}/DemoDataGenerator.java (95%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/data => preview/api/demo}/DemoMetaData.java (90%) diff --git a/service/definition/src/build/revapi-differences.json b/service/definition/src/build/revapi-differences.json index ae2a6823f5a..19088e4c7fa 100644 --- a/service/definition/src/build/revapi-differences.json +++ b/service/definition/src/build/revapi-differences.json @@ -46,6 +46,36 @@ "new": "class ai.timefold.solver.service.definition.api.domain.RunConfiguration", "annotationType": "org.eclipse.microprofile.openapi.annotations.media.Schema", "justification": "RunConfiguration now carries a free-form options map, so the class-level @Schema(additionalProperties = Schema.False.class) was intentionally removed to allow arbitrary option keys." + }, + { + "ignore": true, + "code": "java.class.removed", + "old": "class ai.timefold.solver.service.definition.api.data.AbstractBasicDemoDataGenerator", + "justification": "Not yet ready as a public API" + }, + { + "ignore": true, + "code": "java.class.removed", + "old": "class ai.timefold.solver.service.definition.api.data.DemoData", + "justification": "Not yet ready as a public API" + }, + { + "ignore": true, + "code": "java.class.removed", + "old": "class ai.timefold.solver.service.definition.api.data.DemoDataConfigEntry", + "justification": "Not yet ready as a public API" + }, + { + "ignore": true, + "code": "java.class.removed", + "old": "interface ai.timefold.solver.service.definition.api.data.DemoDataGenerator", + "justification": "Not yet ready as a public API" + }, + { + "ignore": true, + "code": "java.class.removed", + "old": "class ai.timefold.solver.service.definition.api.data.DemoMetaData", + "justification": "Not yet ready as a public API" } ] } diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java similarity index 97% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java index 20302431df8..af2d9ec91dd 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.data; +package ai.timefold.solver.service.definition.preview.api.demo; import java.util.List; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java similarity index 84% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java index 3d39eed209a..3faa0bcdd40 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.data; +package ai.timefold.solver.service.definition.preview.api.demo; import ai.timefold.solver.service.definition.api.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.ModelInput; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataConfigEntry.java similarity index 85% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataConfigEntry.java index 6a9924253de..d015b9dab96 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataConfigEntry.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.data; +package ai.timefold.solver.service.definition.preview.api.demo; public record DemoDataConfigEntry(String key, String value) { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataGenerator.java similarity index 95% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataGenerator.java index 2313f5160ea..6d24c8e99ab 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoDataGenerator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.data; +package ai.timefold.solver.service.definition.preview.api.demo; import java.util.List; import java.util.stream.Collectors; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoMetaData.java similarity index 90% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoMetaData.java index f70dc35a9c4..8507c0cf0ce 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoMetaData.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.data; +package ai.timefold.solver.service.definition.preview.api.demo; import java.util.List; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/data/DemoMetaDataTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/data/DemoMetaDataTest.java index fd3b692f5fd..edaaf39ff85 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/data/DemoMetaDataTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/data/DemoMetaDataTest.java @@ -4,6 +4,8 @@ import java.util.List; +import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; + import org.junit.jupiter.api.Test; class DemoMetaDataTest { diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java index eb7f6994901..a7870764043 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java @@ -41,9 +41,6 @@ import ai.timefold.solver.service.definition.api.ResourceType; import ai.timefold.solver.service.definition.api.Resources; import ai.timefold.solver.service.definition.api.TrialConfig; -import ai.timefold.solver.service.definition.api.data.AbstractBasicDemoDataGenerator; -import ai.timefold.solver.service.definition.api.data.DemoData; -import ai.timefold.solver.service.definition.api.data.DemoDataGenerator; import ai.timefold.solver.service.definition.api.description.ConstraintGroupInfo; import ai.timefold.solver.service.definition.api.description.ConstraintInfo; import ai.timefold.solver.service.definition.api.domain.ConstraintReference; @@ -62,6 +59,9 @@ import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; import ai.timefold.solver.service.definition.internal.descriptor.UISupport; import ai.timefold.solver.service.definition.internal.descriptor.VisualizationPageDescriptor; +import ai.timefold.solver.service.definition.preview.api.demo.AbstractBasicDemoDataGenerator; +import ai.timefold.solver.service.definition.preview.api.demo.DemoData; +import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelArchiveBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java index 28254ebb213..b86f900bce4 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java @@ -13,11 +13,11 @@ import jakarta.ws.rs.ext.MessageBodyReader; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.data.AbstractBasicDemoDataGenerator; -import ai.timefold.solver.service.definition.api.data.DemoDataGenerator; import ai.timefold.solver.service.definition.api.domain.Configuration; import ai.timefold.solver.service.definition.api.domain.ModelRequest; import ai.timefold.solver.service.definition.api.domain.ScoreAnalysisRequest; +import ai.timefold.solver.service.definition.preview.api.demo.AbstractBasicDemoDataGenerator; +import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelConvertorBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.RestComponentsBuildItem; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index 160718bd69b..ffd09f9b9ae 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -9,9 +9,9 @@ import ai.timefold.solver.service.definition.api.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.data.DemoDataGenerator; -import ai.timefold.solver.service.definition.api.data.DemoMetaData; import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; +import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; From 0829077ae5d64ee7a857766b21c2f00c0c3ee409 Mon Sep 17 00:00:00 2001 From: rsynek Date: Mon, 9 Nov 2026 16:31:41 +0100 Subject: [PATCH 2/9] chore: remove unused UserModel --- .../service/definition/api/UserModel.java | 25 ------------------- .../maps/service/client/util/SampleModel.java | 20 +-------------- 2 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java deleted file mode 100644 index a68e51a393a..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java +++ /dev/null @@ -1,25 +0,0 @@ -package ai.timefold.solver.service.definition.api; - -import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; - -public interface UserModel, Status_ extends Status> { - - Score_ getScore(); - - Status_ getStatus(); - - void setStatus(Status_ status); - - Status_ newStatus(String name); - - // TODO remove this from user model once we do request/response payload split - default SolverTerminationConfig getTermination() { // TODO remove this from user model once we do request/response payload split - return null; - } - - // TODO remove this from user model once we do request/response payload split - default void setTermination(SolverTerminationConfig termination) { - // no-op - } -} diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java index 78551e16bb4..c20cb5fc2d4 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java @@ -10,8 +10,6 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.service.definition.api.Status; -import ai.timefold.solver.service.definition.api.UserModel; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; @@ -21,8 +19,7 @@ @PlanningSolution public class SampleModel implements LocationsAwareSolverModel, InputMetricsAware, - OutputMetricsAware, - UserModel> { + OutputMetricsAware { private final String locationSetName; private final List locations; @@ -96,16 +93,6 @@ public ModelOutputMetrics getOutputMetrics() { return null; } - @Override - public Status getStatus() { - return null; - } - - @Override - public Status newStatus(String name) { - return null; - } - @Override public List getLocations() { return this.locations; @@ -125,9 +112,4 @@ public void setLocationsNotInMap(List locationsNotInMap) { public List getLocationsNotInMap() { return locationsNotInMap; } - - @Override - public void setStatus(Status status) { - // Noop - } } From a800abfb5a0a1af486b42d840d638d5d6123d022 Mon Sep 17 00:00:00 2001 From: rsynek Date: Mon, 9 Nov 2026 17:29:42 +0100 Subject: [PATCH 3/9] chore: new package structure --- .../quickstart/service/getting-started.adoc | 4 +- .../service/rest-api.adoc | 2 +- .../definition/api/ModelConfigOverrides.java | 5 -- .../service/definition/api/ModelInput.java | 5 -- .../service/definition/api/ModelOutput.java | 5 -- .../service/definition/api/ResourceType.java | 4 -- .../ConstraintReference.java | 2 +- .../{ => description}/ModelMaturityLevel.java | 2 +- .../dataset}/Configuration.java | 6 +-- .../dataset}/MapsConfiguration.java | 2 +- .../api/{domain => dto/dataset}/Metadata.java | 9 ++-- .../{domain => dto/dataset}/ModelConfig.java | 4 +- .../{domain => dto/dataset}/ModelRequest.java | 6 +-- .../dataset}/ModelResponse.java | 8 ++-- .../dataset}/ResourcesConfiguration.java | 2 +- .../dataset}/RunConfiguration.java | 4 +- .../api/{ => dto/dataset}/SolvingStatus.java | 2 +- .../api/{ => dto}/error/ErrorInfo.java | 2 +- .../{ => dto}/error/ValidationErrorInfo.java | 2 +- .../definition/api/{ => dto}/log/LogInfo.java | 2 +- .../api/{ => dto/patch}/ModelInputPatch.java | 2 +- .../{ => dto/patch}/ModelInputPatchOp.java | 2 +- .../patch}/ModelInputPatchRequest.java | 6 +-- .../scoreanalysis}/ScoreAnalysisConfig.java | 3 +- .../scoreanalysis}/ScoreAnalysisRequest.java | 6 +-- .../solve}/SolverTerminationConfig.java | 2 +- .../{ => dto}/validation/AbstractIssue.java | 2 +- .../api/{ => dto}/validation/Issue.java | 2 +- .../api/{ => dto}/validation/IssueCode.java | 5 +- .../{ => dto}/validation/IssueMetadata.java | 4 +- .../{ => dto}/validation/IssueSeverity.java | 2 +- .../api/{ => dto}/validation/IssueType.java | 4 +- .../validation/LegacyValidationResult.java | 2 +- .../validation}/ValidationIssueTypes.java | 4 +- .../validation}/ValidationResult.java | 5 +- .../validation/ValidationStatus.java | 2 +- .../validation/metadata/IssueMessage.java | 4 +- .../api/{domain => metrics}/DataFormat.java | 2 +- .../api/metrics/ModelInputMetrics.java | 4 -- .../api/metrics/ModelOutputMetrics.java | 5 -- .../{ => model}/ValidationBuilder.java | 11 +++-- .../validation/{ => schema}/Validated.java | 2 +- .../impl/solver/SolverWorkerFacade.java | 22 ++++----- .../impl/validation/AbstractLegacyIssue.java | 8 ++-- .../impl/validation/JsonMappingError.java | 8 ++-- .../ValidationIssueTypeCatalog.java | 2 +- .../configuration/ConfigurationProfile.java | 6 ++- .../dataset}/ModelPostProcessor.java | 5 +- .../dataset}/SolverInput.java | 4 +- .../{api => internal/dataset}/Status.java | 4 +- .../descriptor/InputMetricDescriptor.java | 2 +- .../descriptor/ModelConfigParameter.java | 4 +- .../descriptor}/ModelDescriptor.java | 10 +--- .../descriptor/OutputMetricDescriptor.java | 2 +- .../internal/descriptor/ResourceType.java | 4 ++ .../descriptor}/Resources.java | 2 +- .../descriptor}/TrialConfig.java | 2 +- .../internal/events/AbstractDatasetEvent.java | 2 +- .../internal/events/BestSolutionEvent.java | 4 +- .../internal/events/DatasetComputedEvent.java | 4 +- .../internal/events/DatasetCreatedEvent.java | 2 +- .../events/DatasetValidatedEvent.java | 4 +- .../internal/events/FailedSolutionEvent.java | 2 +- .../events/FinalBestSolutionEvent.java | 4 +- .../internal/events/InitSolutionEvent.java | 4 +- .../internal/events/ItemFailed.java | 2 +- .../internal/events/ItemStarted.java | 4 +- .../internal/events/SolverWorkerEvent.java | 4 +- .../internal/events/ValidationSummary.java | 8 ++-- .../internal/{ => rest}/Headers.java | 2 +- .../storage/AbstractStorageService.java | 34 ++++++------- .../validation/schema}/Validator.java | 2 +- .../demo/AbstractBasicDemoDataGenerator.java | 6 +-- .../definition/preview/api/demo/DemoData.java | 6 +-- .../conversion}/ModelConvertor.java | 12 +++-- .../conversion}/ModelConvertorBase.java | 2 +- .../spi/dto/ModelConfigOverrides.java | 5 ++ .../dto}/ModelConstraintJustification.java | 2 +- .../definition/spi/dto/ModelInput.java | 5 ++ .../definition/spi/dto/ModelOutput.java | 5 ++ .../enrichment/SolverModelEnricher.java | 4 +- .../enrichment/SolverModelEnricherBase.java | 2 +- .../SolverModelEnricherService.java | 4 +- .../SolverModelEnrichmentDirector.java | 4 +- .../SolverModelEnrichmentDirectorBase.java | 2 +- .../SolverModelEnrichmentDirectorService.java | 4 +- .../metrics/InputMetricsAware.java | 2 +- .../spi/metrics/ModelInputMetrics.java | 4 ++ .../spi/metrics/ModelOutputMetrics.java | 5 ++ .../metrics/OutputMetricsAware.java | 2 +- .../model}/AbstractSimpleModel.java | 12 +++-- .../{api => spi/model}/SolverModel.java | 2 +- .../validation/ModelValidator.java | 9 ++-- .../api/ModelMaturityLevelTest.java | 1 + .../api/domain/RunConfigurationTest.java | 3 +- .../SolverTerminationConfigTest.java | 1 + .../ValidationIssueSerializationTest.java | 5 ++ .../events/ValidationSummaryTest.java | 10 ++-- .../AbstractStorageServiceRetryTest.java | 14 +++--- .../json/internal/patch/JsonPatch.java | 2 +- .../internal/schema/JsonSchemaValidator.java | 2 +- .../client/api/TravelTimeMatrixEnricher.java | 2 +- .../client/impl/MapServiceClientImpl.java | 18 +++---- .../client/impl/WaypointsServiceImpl.java | 2 +- .../impl/error/MapServiceExceptionMapper.java | 2 +- .../SaveWaypointsPostProcessor.java | 6 +-- .../client/impl/WaypointsServiceImplTest.java | 2 +- .../service/client/util/DummyModelInput.java | 2 +- .../service/client/util/DummyModelOutput.java | 2 +- .../client/util/DummyStorageService.java | 10 ++-- .../maps/service/client/util/SampleModel.java | 8 ++-- .../api/LocationsAwareSolverModel.java | 2 +- .../integration/api/WaypointsExtractor.java | 2 +- .../impl/AbstractMapsModelAPIResource.java | 18 +++---- .../DistanceGetUpdateResponseTransformer.java | 8 ++-- .../HaversineDistanceResponseTransformer.java | 12 ++--- .../DefaultConfigProfileProcessor.java | 14 +++--- .../TimefoldModelConvertorProcessor.java | 4 +- .../TimefoldModelDescriptorProcessor.java | 16 +++---- .../deployment/TimefoldModelsProcessor.java | 18 +++---- .../deployment/TimefoldRESTProcessor.java | 6 +-- .../deployment/TimefoldStorageProcessor.java | 2 +- .../TimefoldValidatorProcessor.java | 4 +- .../rest/DefaultModelResourceTypeInfo.java | 2 +- .../rest/EnterpriseModelResourceTypeInfo.java | 2 +- ...terpriseModelResourceWithMapsTypeInfo.java | 2 +- .../rest/ModelResourceWithMapsTypeInfo.java | 2 +- .../DiscoveredIssueTypesBuildItem.java | 2 +- .../ValidationIssueTypeCatalogProcessor.java | 6 +-- .../deployment/DefaultConfigProfileTest.java | 2 +- .../DuplicateValidationIssueTypesTest.java | 2 +- ...nfigDescriptorConstraintReferenceTest.java | 2 +- .../ModelConfigDescriptorDefaultTest.java | 4 +- .../ModelConfigDescriptorSchemaTest.java | 4 +- .../ModelDescriptorResourceTypeTest.java | 2 +- .../ModelDescriptorUniqueResourcesTest.java | 2 +- .../ModelResourceTypeParsingTest.java | 2 +- .../deployment/ProcessModelUITest.java | 2 +- .../deployment/ValidationIssueTypesTest.java | 6 +-- .../AbstractTrivialModelConvertorTest.java | 8 ++-- .../ConstraintGroupDescriptorTest.java | 2 +- .../TestdataModelConvertor.java | 4 +- .../constraintgroup/TestdataSolution.java | 6 +-- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataSolution.java | 6 +-- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 4 +- .../modelconfigdefault/TestdataSolution.java | 6 +-- .../TestdataModelConfigOverrides.java | 4 +- .../TestdataModelConvertor.java | 4 +- .../TestdataSolution.java | 10 ++-- .../TestdataModelConfigOverrides.java | 4 +- .../TestdataModelConvertor.java | 4 +- .../modelconfigschema/TestdataSolution.java | 10 ++-- .../testdata/storage/TestdataModelConfig.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../storage/TestdataModelConvertor.java | 4 +- .../testdata/storage/TestdataModelInput.java | 2 +- .../storage/TestdataModelInputMetrics.java | 2 +- .../testdata/storage/TestdataModelOutput.java | 2 +- .../storage/TestdataModelOutputMetrics.java | 2 +- .../testdata/storage/TestdataSolution.java | 6 +-- .../uniqueresource/TestdataSolution.java | 6 +-- .../validation/TestdataModelValidator.java | 16 +++---- .../testdata/validation/TestdataSolution.java | 6 +-- .../DuplicateTestIssue.java | 2 +- .../validationduplicates/TestIssue.java | 4 +- .../TestdataAbstractIssue.java | 8 ++-- .../TestdataModelValidator.java | 6 +-- .../TestdataSolution.java | 6 +-- .../deployment/it/TestdataModelConfig.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../it/TestdataModelInputMetrics.java | 2 +- .../it/TestdataModelOutputMetrics.java | 2 +- .../deployment/it/TestdataSolution.java | 10 ++-- .../AbstractTrivialModelConvertor.java | 16 +++---- .../defaults/EmptyModelConfigOverrides.java | 2 +- .../EmptyModelConstraintJustification.java | 2 +- .../defaults/EmptyModelInputMetrics.java | 2 +- .../defaults/EmptyModelOutputMetrics.java | 2 +- ...AbstractModelConfigMessageBodyReaders.java | 2 +- ...bstractModelRequestMessageBodyReaders.java | 6 +-- ...coreAnalysisRequestMessageBodyReaders.java | 6 +-- .../ValidatingReaderInterceptorContext.java | 6 +-- .../ValidationIssueTypeCatalogRecorder.java | 2 +- .../rest/impl/AbstractDemoDataResource.java | 6 +-- .../rest/impl/AbstractModelAPIResource.java | 48 +++++++++---------- .../impl/error/CompletionExceptionMapper.java | 2 +- .../error/IllegalArgumentExceptionMapper.java | 2 +- .../error/IllegalStateExceptionMapper.java | 2 +- .../error/ItemNotFoundExceptionMapper.java | 2 +- .../error/TimefoldRuntimeExceptionMapper.java | 2 +- .../impl/error/UnknownExceptionMapper.java | 2 +- .../error/WebApplicationExceptionMapper.java | 2 +- .../AbstractEmployeeScheduleIssue.java | 8 ++-- .../EmployeeScheduleInputMetrics.java | 4 +- .../EmployeeScheduleOutputMetrics.java | 4 +- .../testmodel/EmployeeScheduleValidator.java | 6 +-- .../testmodel/ShiftEndBeforeStartIssue.java | 6 +-- .../testmodel/domain/EmployeeSchedule.java | 10 ++-- .../EmployeeScheduleResourceTest.java | 24 +++++----- .../impl/DefaultSolverWorkerFacade.java | 22 ++++----- .../service/worker/impl/SolverWorker.java | 42 ++++++++-------- .../worker/impl/SolverWorkerJobState.java | 2 +- .../worker/impl/audit/AuditListener.java | 2 +- .../SolverModelEnricherServiceImpl.java | 8 ++-- ...verModelEnrichmentDirectorServiceImpl.java | 8 ++-- .../worker/impl/log/LogsPostProcessor.java | 8 ++-- .../monitoring/FlightRecorderProfiler.java | 6 +-- .../impl/termination/TerminationService.java | 2 +- .../impl/DefaultSolverWorkerFacadeTest.java | 8 ++-- .../termination/TerminationServiceTest.java | 2 +- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../impl/testdata/TestdataModelInput.java | 2 +- .../testdata/TestdataModelInputMetrics.java | 2 +- .../impl/testdata/TestdataModelOutput.java | 2 +- .../testdata/TestdataModelOutputMetrics.java | 2 +- .../impl/testdata/TestdataStorageService.java | 2 +- 219 files changed, 575 insertions(+), 562 deletions(-) delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => description}/ConstraintReference.java (92%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => description}/ModelMaturityLevel.java (79%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/Configuration.java (90%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{configuration => dto/dataset}/MapsConfiguration.java (97%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/Metadata.java (97%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/ModelConfig.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/ModelRequest.java (90%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/ModelResponse.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{configuration => dto/dataset}/ResourcesConfiguration.java (93%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/dataset}/RunConfiguration.java (95%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto/dataset}/SolvingStatus.java (94%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/error/ErrorInfo.java (96%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/error/ValidationErrorInfo.java (93%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/log/LogInfo.java (90%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto/patch}/ModelInputPatch.java (94%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto/patch}/ModelInputPatchOp.java (53%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/patch}/ModelInputPatchRequest.java (74%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/scoreanalysis}/ScoreAnalysisConfig.java (78%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => dto/scoreanalysis}/ScoreAnalysisRequest.java (85%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{termination => dto/solve}/SolverTerminationConfig.java (99%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/AbstractIssue.java (96%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/Issue.java (94%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/IssueCode.java (80%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/IssueMetadata.java (82%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/IssueSeverity.java (91%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/IssueType.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/LegacyValidationResult.java (95%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{validation/dto => dto/validation}/ValidationIssueTypes.java (69%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{validation/dto => dto/validation}/ValidationResult.java (73%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/ValidationStatus.java (59%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{ => dto}/validation/metadata/IssueMessage.java (67%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/{domain => metrics}/DataFormat.java (94%) delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/{ => model}/ValidationBuilder.java (85%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/{ => schema}/Validated.java (76%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal}/configuration/ConfigurationProfile.java (96%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/dataset}/ModelPostProcessor.java (84%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/dataset}/SolverInput.java (61%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/dataset}/Status.java (84%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/descriptor}/ModelDescriptor.java (93%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ResourceType.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/descriptor}/Resources.java (61%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => internal/descriptor}/TrialConfig.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/internal/{ => rest}/Headers.java (93%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api/validation => internal/validation/schema}/Validator.java (75%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi/conversion}/ModelConvertor.java (87%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi/conversion}/ModelConvertorBase.java (80%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi/dto}/ModelConstraintJustification.java (80%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnricher.java (80%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnricherBase.java (81%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnricherService.java (70%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnrichmentDirector.java (91%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnrichmentDirectorBase.java (83%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/enrichment/SolverModelEnrichmentDirectorService.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/metrics/InputMetricsAware.java (66%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/metrics/OutputMetricsAware.java (67%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi/model}/AbstractSimpleModel.java (74%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi/model}/SolverModel.java (83%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{api => spi}/validation/ModelValidator.java (69%) diff --git a/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc b/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc index de6d59fb982..97f7fb5eb78 100644 --- a/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc +++ b/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc @@ -104,7 +104,7 @@ package org.acme.schooltimetabling.domain; import java.util.List; -import ai.timefold.solver.service.definition.api.AbstractSimpleModel; +import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty; import ai.timefold.solver.core.api.domain.solution.PlanningScore; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; @@ -172,7 +172,7 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider import ai.timefold.solver.core.api.score.HardMediumSoftScore -import ai.timefold.solver.service.definition.api.AbstractSimpleModel +import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel @PlanningSolution class Timetable : AbstractSimpleModel() { diff --git a/docs/src/modules/ROOT/pages/running-timefold-solver/service/rest-api.adoc b/docs/src/modules/ROOT/pages/running-timefold-solver/service/rest-api.adoc index 67813933cbd..bcdcb79196b 100644 --- a/docs/src/modules/ROOT/pages/running-timefold-solver/service/rest-api.adoc +++ b/docs/src/modules/ROOT/pages/running-timefold-solver/service/rest-api.adoc @@ -195,7 +195,7 @@ Additionally, more fields might be added for specific model implementations: [NOTE] ==== -This envelope is represented in Java/Kotlin by the `ModelResponse` record (`ai.timefold.solver.service.definition.api.domain.ModelResponse`). +This envelope is represented in Java/Kotlin by the `ModelResponse` record (`ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse`). Its accessor is named `outputMetrics()`, not `kpis()`; only the JSON serialization uses the `kpis` key (via `@JsonProperty("kpis")`). The score itself is not a top-level field: it's nested inside `metadata.score`, not `metadata.run.score` or a top-level `score`. ==== diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java deleted file mode 100644 index 44d05a03c68..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.api; - -public interface ModelConfigOverrides { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java deleted file mode 100644 index 5b6732a33ae..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.api; - -public interface ModelInput { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java deleted file mode 100644 index b6b07e53cc6..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.api; - -public interface ModelOutput { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java deleted file mode 100644 index e563788fa31..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java +++ /dev/null @@ -1,4 +0,0 @@ -package ai.timefold.solver.service.definition.api; - -public record ResourceType(String value) { -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintReference.java similarity index 92% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintReference.java index c236c84712f..85ac6ce9c6b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintReference.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.description; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ModelMaturityLevel.java similarity index 79% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ModelMaturityLevel.java index b1529ba519e..e2427b592c1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ModelMaturityLevel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.api.description; import com.fasterxml.jackson.annotation.JsonAlias; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java similarity index 90% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java index efafb06cb6f..04c2061789c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java @@ -1,8 +1,6 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.configuration.MapsConfiguration; -import ai.timefold.solver.service.definition.api.configuration.ResourcesConfiguration; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/MapsConfiguration.java similarity index 97% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/MapsConfiguration.java index c541f3bd190..a6428c2b86b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/MapsConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.configuration; +package ai.timefold.solver.service.definition.api.dto.dataset; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java similarity index 97% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java index ab15ae63911..2640df77abb 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; @@ -8,10 +8,9 @@ import java.util.Set; import java.util.UUID; -import ai.timefold.solver.service.definition.api.SolvingStatus; -import ai.timefold.solver.service.definition.api.Status; -import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.internal.dataset.Status; +import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java index ddb1b88f722..d88b3389ad0 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java similarity index 90% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java index e9d074f2b12..999299ee135 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java index 19ff8042926..bb493459d49 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ResourcesConfiguration.java similarity index 93% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ResourcesConfiguration.java index 4aff4a67e6c..362349bf62f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ResourcesConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.configuration; +package ai.timefold.solver.service.definition.api.dto.dataset; import java.util.Map; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/RunConfiguration.java similarity index 95% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/RunConfiguration.java index 6b503a17df6..00ce189a409 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/RunConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.dataset; import java.util.Map; import java.util.Set; @@ -6,7 +6,7 @@ import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Size; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/SolvingStatus.java similarity index 94% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/SolvingStatus.java index 445d2e50507..ac76e4edaec 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/SolvingStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.api.dto.dataset; /** * Represents the dateset lifecycle. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ErrorInfo.java similarity index 96% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ErrorInfo.java index 11ce00e0560..bdc75db766a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ErrorInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.error; +package ai.timefold.solver.service.definition.api.dto.error; import java.util.UUID; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ValidationErrorInfo.java similarity index 93% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ValidationErrorInfo.java index 73811f094ae..3a3a6dbe441 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/error/ValidationErrorInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.error; +package ai.timefold.solver.service.definition.api.dto.error; import java.util.List; import java.util.UUID; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/log/LogInfo.java similarity index 90% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/log/LogInfo.java index 5af6afea7d5..0d21d0cce3e 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/log/LogInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.log; +package ai.timefold.solver.service.definition.api.dto.log; import com.fasterxml.jackson.annotation.JsonIncludeProperties; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatch.java similarity index 94% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatch.java index 903e45690e5..852ce80bcd1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatch.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.api.dto.patch; import java.util.Collection; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchOp.java similarity index 53% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchOp.java index e6d904cc11e..ec41044570c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchOp.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.api.dto.patch; public enum ModelInputPatchOp { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java similarity index 74% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java index 8b59e003d50..ea4e041ca20 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.patch; import java.util.List; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInputPatch; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java similarity index 78% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java index ef476838650..eff7ab22351 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java @@ -1,5 +1,6 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.scoreanalysis; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import org.eclipse.microprofile.openapi.annotations.media.Schema; @Schema(additionalProperties = Schema.False.class) diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java similarity index 85% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java index 4d7418321cb..801585171f3 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.dto.scoreanalysis; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/solve/SolverTerminationConfig.java similarity index 99% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/solve/SolverTerminationConfig.java index 6c4d9585118..dc8f836ff39 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/solve/SolverTerminationConfig.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.termination; +package ai.timefold.solver.service.definition.api.dto.solve; import java.time.Duration; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java similarity index 96% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java index 080ea153f57..f41220af971 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.Collections; import java.util.List; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java similarity index 94% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java index 784283da9c6..1186ef8653c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.List; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java index feb06a33de7..e2a771457f9 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.Objects; @@ -6,8 +6,7 @@ import io.quarkus.runtime.annotations.RecordableConstructor; -public record IssueCode( - @JsonValue String value) { +public record IssueCode(@JsonValue String value) { @RecordableConstructor public IssueCode(String value) { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java similarity index 82% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java index 840931e0d86..ecad6b49c98 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java similarity index 91% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java index 3e78f02a2cf..8d106698cdd 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java index a54caef0345..7b15a044cc1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.List; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/LegacyValidationResult.java similarity index 95% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/LegacyValidationResult.java index 5357f520686..cf1eb0b6fe4 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/LegacyValidationResult.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.List; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java similarity index 69% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java index a77a66fb141..c87e983bd8b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java @@ -1,9 +1,7 @@ -package ai.timefold.solver.service.definition.api.validation.dto; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.Collection; -import ai.timefold.solver.service.definition.api.validation.IssueType; - import org.eclipse.microprofile.openapi.annotations.media.Schema; public record ValidationIssueTypes( diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java similarity index 73% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java index f2d29252ff0..555830d4ee5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java @@ -1,10 +1,7 @@ -package ai.timefold.solver.service.definition.api.validation.dto; +package ai.timefold.solver.service.definition.api.dto.validation; import java.util.Collection; -import ai.timefold.solver.service.definition.api.validation.Issue; -import ai.timefold.solver.service.definition.api.validation.ValidationStatus; - import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationStatus.java similarity index 59% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationStatus.java index c4e1ee453cb..e53f2c430ad 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.dto.validation; public enum ValidationStatus { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java similarity index 67% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java index 286189d3a0b..94c55a6710b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api.validation.metadata; +package ai.timefold.solver.service.definition.api.dto.validation.metadata; -import ai.timefold.solver.service.definition.api.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; import io.quarkus.runtime.annotations.RecordableConstructor; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/DataFormat.java similarity index 94% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/DataFormat.java index d8bdfd27bd5..7eef37b424c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/DataFormat.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.domain; +package ai.timefold.solver.service.definition.api.metrics; import java.util.Arrays; import java.util.stream.Stream; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java deleted file mode 100644 index 9f084c89540..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java +++ /dev/null @@ -1,4 +0,0 @@ -package ai.timefold.solver.service.definition.api.metrics; - -public interface ModelInputMetrics { -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java deleted file mode 100644 index fe316b3936f..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.api.metrics; - -public interface ModelOutputMetrics { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java similarity index 85% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java index e86fca3d58d..75c0d3447ac 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java @@ -1,10 +1,15 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation.model; import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/schema/Validated.java similarity index 76% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/schema/Validated.java index ce7cd60bf4b..dd60e44096a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/schema/Validated.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation.schema; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java index de1df70b297..e0c18ce1898 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java @@ -3,17 +3,17 @@ import java.util.List; import java.util.Set; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; -import ai.timefold.solver.service.definition.api.log.LogInfo; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.dto.log.LogInfo; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java index 77f2c9d03bf..b02976adddc 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java index b1da20ca0ee..f79d43cdd87 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; /** * Internal validation issue to translate a JSON parsing error diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java index 20b3e7f8ba7..876808c3047 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java @@ -2,7 +2,7 @@ import java.util.Collection; -import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; /** * Provides all supported {@link IssueType validation issue types}. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/configuration/ConfigurationProfile.java similarity index 96% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/configuration/ConfigurationProfile.java index 408501ea5a1..41ad0a7241f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/configuration/ConfigurationProfile.java @@ -1,11 +1,13 @@ -package ai.timefold.solver.service.definition.api.configuration; +package ai.timefold.solver.service.definition.internal.configuration; import java.time.OffsetDateTime; import java.util.HashMap; import java.util.Map; import java.util.Objects; -import ai.timefold.solver.service.definition.api.domain.RunConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.MapsConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.ResourcesConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; public class ConfigurationProfile { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java similarity index 84% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java index 07c0bf0c5a0..1fedf9b604d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java @@ -1,4 +1,7 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.dataset; + +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; public interface ModelPostProcessor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/SolverInput.java similarity index 61% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/SolverInput.java index 399742c2e9d..f667046742d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/SolverInput.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.dataset; -import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; public record SolverInput( ModelInput_ modelInput, diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java similarity index 84% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java index 1d6fa1f9c2a..33d8d39ce1c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java @@ -1,4 +1,6 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.dataset; + +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import java.time.OffsetDateTime; import java.util.Map; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java index ccc9573d7be..e53536a3879 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; /** * Defines InputMetric of the model where information is retrieved from ModelInputMetric class of the model diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java index 25f31e185b3..68decc85dcd 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import org.eclipse.microprofile.openapi.models.media.Schema.SchemaType; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelDescriptor.java similarity index 93% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelDescriptor.java index 7b4875ccf4b..e3df8b4766d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelDescriptor.java @@ -1,16 +1,10 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.descriptor; import java.util.Collections; import java.util.List; import java.util.Map; -import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; -import ai.timefold.solver.service.definition.internal.descriptor.DocumentationDescriptor; -import ai.timefold.solver.service.definition.internal.descriptor.InputMetricDescriptor; -import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; -import ai.timefold.solver.service.definition.internal.descriptor.OutputMetricDescriptor; -import ai.timefold.solver.service.definition.internal.descriptor.UISupport; -import ai.timefold.solver.service.definition.internal.descriptor.VisualizationPageDescriptor; +import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; import ai.timefold.solver.service.definition.internal.descriptor.usage.UniqueResource; public class ModelDescriptor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java index d1f14fbd4fb..ecec2bf06b5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; /** * Defines Output Metric of the model where information is retrieved from ModelOutputMetrics class of the model diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ResourceType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ResourceType.java new file mode 100644 index 00000000000..87c60212372 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ResourceType.java @@ -0,0 +1,4 @@ +package ai.timefold.solver.service.definition.internal.descriptor; + +public record ResourceType(String value) { +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/Resources.java similarity index 61% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/Resources.java index c8c1e605aa1..1e5a4c9901c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/Resources.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.descriptor; public record Resources(String memoryRequest, String memoryLimit, String cpuRequest, String cpuLimit) { } diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/TrialConfig.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/TrialConfig.java index 73447423a6d..d721a4e1a3c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/TrialConfig.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.internal.descriptor; /** * Configuration of trial use of the model diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java index 0eb0546c21b..6b60a74a63e 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event referencing the associated {@link Metadata}. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java index 216542ecfdc..99f0eb663c8 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * This event is sent when a new best solution is found during the solving process. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java index 1a6537ca041..45595d8c36b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event sent when the outputs of a dataset are computed before solving. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java index 161e1b5be53..973e38b4c90 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event that a new dataset is submitted via the API. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java index 2bf3c5603d1..e11f2d76c35 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; /** * Sent when a dataset is successfully validated by {@link ModelValidator}. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java index 12ccb6aafd6..b4990a64599 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Sent when a solver worker fails during solving. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java index aa521e24e83..9bdd387cda3 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Sent when the solver worker produces the final best solution upon termination conditions. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java index 1b41ade0301..814e4793646 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Sent when a solver worker produces the first, initialized, solution. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java index d38de28cf16..a02b2db1c4c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event that indicates a dataset has failed during processing. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java index 8b9b49044ec..353bef41495 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event sent when the solver worker starts solving the dataset. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java index b0e0bc4cf34..f3e39da6219 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Base class for events produced by the SolverWorker. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java index bb8ce6283b6..f123f216b22 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java @@ -3,10 +3,10 @@ import java.util.HashMap; import java.util.Map; -import ai.timefold.solver.service.definition.api.validation.Issue; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.ValidationStatus; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; /** * A compact summary of a dataset validation, carrying the overall {@link ValidationStatus} and issue counts by diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/rest/Headers.java similarity index 93% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/rest/Headers.java index d83e1332070..1e283cbbe34 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/rest/Headers.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.internal; +package ai.timefold.solver.service.definition.internal.rest; public class Headers { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java index f7d9a9a9b77..a24c972d322 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java @@ -16,23 +16,23 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverInput; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; -import ai.timefold.solver.service.definition.api.log.LogInfo; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.validation.Issue; -import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.internal.dataset.SolverInput; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.dto.log.LogInfo; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/validation/schema/Validator.java similarity index 75% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/validation/schema/Validator.java index b5ecc01c5b6..18c821a4944 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/validation/schema/Validator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.internal.validation.schema; import java.util.List; import java.util.UUID; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java index af2d9ec91dd..fd55ca6dab7 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java @@ -2,9 +2,9 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; /** * Default {@link DemoDataGenerator} implementation for models that provide only a single demo data set with ID diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java index 3faa0bcdd40..f76e9bc843f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.preview.api.demo; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; public record DemoData(DemoMetaData metaData, ModelRequest modelRequest) { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java similarity index 87% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java index 31a9b728ff7..21340d850f5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java @@ -1,11 +1,15 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.spi.conversion; import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java index 73301f1fd08..41186450378 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.spi.conversion; /** * Root interface for all {@link ModelConvertor} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java new file mode 100644 index 00000000000..4bfbd01ce45 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.spi.dto; + +public interface ModelConfigOverrides { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java index 0bcdda4cc76..83439384b5b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.spi.dto; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java new file mode 100644 index 00000000000..59679c55aa6 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.spi.dto; + +public interface ModelInput { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java new file mode 100644 index 00000000000..e53d6481fa5 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.spi.dto; + +public interface ModelOutput { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java index cafb973e4df..50ede0ca0e2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; public non-sealed interface SolverModelEnricher>> extends SolverModelEnricherBase { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java similarity index 81% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java index 4219e3ab5c9..85258d2b423 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; /** * Root interface for all {@link SolverModelEnricher} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java similarity index 70% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java index f869a036cf8..1bf8e2a3318 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; public interface SolverModelEnricherService { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java similarity index 91% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java index b9ac2e13bbf..98dbbae2761 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Provides a model-specific way of enriching a solver model, typically for models using multiple enrichers depending on each diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java similarity index 83% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java index eabd5efb158..1aa812fac5a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; /** * Root interface for all {@link SolverModelEnrichmentDirector} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java index ddb72274cb4..7bf74810d06 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.api.enrichment; +package ai.timefold.solver.service.definition.spi.enrichment; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; public interface SolverModelEnrichmentDirectorService { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java similarity index 66% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java index 6201d659cd1..8ed652b5ef9 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.metrics; +package ai.timefold.solver.service.definition.spi.metrics; public interface InputMetricsAware { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java new file mode 100644 index 00000000000..02c5525b069 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java @@ -0,0 +1,4 @@ +package ai.timefold.solver.service.definition.spi.metrics; + +public interface ModelInputMetrics { +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java new file mode 100644 index 00000000000..8ec5503dc7f --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.spi.metrics; + +public interface ModelOutputMetrics { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java similarity index 67% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java index 8553261f937..9390d3fd0f0 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.metrics; +package ai.timefold.solver.service.definition.spi.metrics; public interface OutputMetricsAware { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java similarity index 74% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java index 3f127346cfa..750f867049e 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java @@ -1,12 +1,14 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.spi.model; import ai.timefold.solver.core.api.domain.solution.PlanningScore; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java similarity index 83% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java index 69ef87d9de5..a963b5e5721 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api; +package ai.timefold.solver.service.definition.spi.model; import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.Score; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java similarity index 69% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java index c35d725342d..f4f4931756f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java @@ -1,8 +1,9 @@ -package ai.timefold.solver.service.definition.api.validation; +package ai.timefold.solver.service.definition.spi.validation; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; /** * Provides a complex validation of the model input before the solving, or other operation, starts. diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java index b2eac31252f..bc70cbc7b76 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java @@ -1,5 +1,6 @@ package ai.timefold.solver.service.definition.api; +import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/domain/RunConfigurationTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/domain/RunConfigurationTest.java index dcbbc1023a4..eb599291938 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/domain/RunConfigurationTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/domain/RunConfigurationTest.java @@ -6,7 +6,8 @@ import java.util.Map; import java.util.Set; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java index 53a43691aaa..d717f905ed6 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java @@ -5,6 +5,7 @@ import java.time.Duration; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import org.junit.jupiter.api.Test; class SolverTerminationConfigTest { diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java index e773aad982e..233d38ce6ee 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java @@ -2,6 +2,11 @@ import java.util.List; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; import org.assertj.core.api.Assertions; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java index ce21415f99c..10e585bcb30 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java @@ -5,11 +5,11 @@ import java.util.List; import java.util.Map; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.ValidationStatus; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java index 0d93c691a5b..14dcc710954 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java @@ -13,13 +13,13 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; diff --git a/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java b/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java index 3302ce5c863..9b003d1ba68 100644 --- a/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java @@ -3,7 +3,7 @@ import java.util.function.Function; import java.util.regex.Matcher; -import ai.timefold.solver.service.definition.api.ModelInputPatchOp; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchOp; import ai.timefold.solver.service.json.impl.patch.AddByFilter; import ai.timefold.solver.service.json.impl.patch.AddByIndex; import ai.timefold.solver.service.json.impl.patch.JsonPatchConstants; diff --git a/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java index 333854f146e..6b9786db10b 100644 --- a/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java @@ -12,7 +12,7 @@ import jakarta.annotation.PostConstruct; import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.validation.Validator; +import ai.timefold.solver.service.definition.internal.validation.schema.Validator; import ai.timefold.solver.service.json.api.schema.LocalDateTimeFormat; import ai.timefold.solver.service.json.api.schema.OffsetDateTimeFormat; import ai.timefold.solver.service.json.api.schema.ZoneIdFormat; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java index cf4d9447656..7cf9a992784 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java @@ -10,7 +10,7 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricher; import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java index f60d32b89cc..884f62fa435 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java @@ -1,14 +1,14 @@ package ai.timefold.solver.service.maps.service.client.impl; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_CACHE_ID; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_INVALIDATE_MATRIX_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATION_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; -import static ai.timefold.solver.service.definition.internal.Headers.X_TENANT_ID_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_CACHE_ID; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_INVALIDATE_MATRIX_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATION_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_TENANT_ID_HEADER; import java.io.IOException; import java.io.InputStream; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java index 2a007a4da71..596bd9db42b 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java @@ -13,7 +13,7 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java index 0960775f5fe..880a34a9cb4 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java @@ -2,7 +2,7 @@ import jakarta.ws.rs.core.Response; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java index e9c4d03195b..fd426cabb69 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java @@ -8,9 +8,9 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.ModelPostProcessor; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import ai.timefold.solver.service.maps.api.model.Waypoints; import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java index ffe917d719c..83e7c4f4b27 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java @@ -5,7 +5,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java index 1c5580ae5b8..9f74649b473 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.maps.service.client.util; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; public class DummyModelInput implements ModelInput { } diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java index 476ef6aec7a..e00fe3ca23a 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.maps.service.client.util; -import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; public class DummyModelOutput implements ModelOutput { } diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java index 38503fe844c..499b2e87743 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java @@ -1,11 +1,11 @@ package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java index c20cb5fc2d4..32ad24f2dd0 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java @@ -10,10 +10,10 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; import ai.timefold.solver.service.maps.api.model.Location; import ai.timefold.solver.service.maps.service.integration.api.LocationsAwareSolverModel; diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java index 7d6b529521b..ce8dd8d111b 100644 --- a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java @@ -4,7 +4,7 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.maps.api.model.Location; import ai.timefold.solver.service.maps.api.model.TransportType; diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java index f9ece8f15c0..833bcefdbe7 100644 --- a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.maps.api.model.Waypoints; public non-sealed interface WaypointsExtractor> extends WaypointsExtractorBase { diff --git a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java index a8e67c7582c..791a82e6163 100644 --- a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java +++ b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java @@ -11,15 +11,15 @@ import jakarta.ws.rs.core.Response; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.validation.Issue; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.maps.api.model.Waypoints; diff --git a/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java index 9b71cdc4e1d..7fe3e4c0af1 100644 --- a/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java @@ -1,9 +1,9 @@ package ai.timefold.solver.service.maps.service.test.impl; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; import java.io.ByteArrayInputStream; import java.io.SequenceInputStream; diff --git a/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java index 4b8d8f2ee33..1e5e1d205ea 100644 --- a/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java @@ -1,11 +1,11 @@ package ai.timefold.solver.service.maps.service.test.impl; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATION_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_LOCATION_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.rest.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; import java.io.ByteArrayInputStream; import java.io.InputStream; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java index 755954feba6..1dc6b5406c7 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.quarkus.deployment; -import static ai.timefold.solver.service.definition.api.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_ID; -import static ai.timefold.solver.service.definition.api.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_NAME; +import static ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_ID; +import static ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_NAME; import java.nio.file.Files; import java.nio.file.Path; @@ -9,11 +9,11 @@ import java.time.Duration; import java.util.Map; -import ai.timefold.solver.service.definition.api.configuration.ConfigurationProfile; -import ai.timefold.solver.service.definition.api.configuration.MapsConfiguration; -import ai.timefold.solver.service.definition.api.configuration.ResourcesConfiguration; -import ai.timefold.solver.service.definition.api.domain.RunConfiguration; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile; +import ai.timefold.solver.service.definition.api.dto.dataset.MapsConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.ResourcesConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java index fa253384f21..37f3cd86db6 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java @@ -6,8 +6,8 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelConvertorBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.RestComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java index a7870764043..5d3de865d06 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java @@ -36,16 +36,16 @@ import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel; import ai.timefold.solver.core.api.solver.SolverFactory; import ai.timefold.solver.core.impl.util.SolverVersionUtils; -import ai.timefold.solver.service.definition.api.ModelDescriptor; -import ai.timefold.solver.service.definition.api.ModelMaturityLevel; -import ai.timefold.solver.service.definition.api.ResourceType; -import ai.timefold.solver.service.definition.api.Resources; -import ai.timefold.solver.service.definition.api.TrialConfig; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; +import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; +import ai.timefold.solver.service.definition.internal.descriptor.ResourceType; +import ai.timefold.solver.service.definition.internal.descriptor.Resources; +import ai.timefold.solver.service.definition.internal.descriptor.TrialConfig; import ai.timefold.solver.service.definition.api.description.ConstraintGroupInfo; import ai.timefold.solver.service.definition.api.description.ConstraintInfo; -import ai.timefold.solver.service.definition.api.domain.ConstraintReference; -import ai.timefold.solver.service.definition.api.domain.DataFormat; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.description.ConstraintReference; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.rest.OperationId; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java index 5c4ee77af2b..84eb87a840c 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java @@ -13,15 +13,15 @@ import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel; import ai.timefold.solver.quarkus.deployment.api.ConstraintMetaModelBuildItem; -import ai.timefold.solver.service.definition.api.AbstractSimpleModel; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; +import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java index b86f900bce4..546689a61d6 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java @@ -13,9 +13,9 @@ import jakarta.ws.rs.ext.MessageBodyReader; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ScoreAnalysisRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import ai.timefold.solver.service.definition.preview.api.demo.AbstractBasicDemoDataGenerator; import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java index aff405d3bb8..e37e4032140 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java @@ -9,7 +9,7 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java index 2c08ab11199..20340267a12 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java @@ -4,8 +4,8 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java index 9dab3096ea5..a5a8ef8a4a9 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java index b851e9d1f1d..f60355ead00 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java index 4ff5534e19b..1af63ec0696 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java index 70f04501dbb..870d1137e7c 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java index 1086a2dc47b..4882185de8e 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; import io.quarkus.builder.item.SimpleBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java index f520ed63030..581ee1c0994 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java @@ -11,9 +11,9 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java index cb7d0e8138a..58cb5e08841 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java @@ -6,7 +6,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.configuration.ConfigurationProfile; +import ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile; import ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile.TestdataEntity; import ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile.TestdataModelConfigOverrides; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java index 08d48da9aec..f12066862ae 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.DuplicateTestIssue; import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestIssue; import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataAbstractIssue; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java index 0fdfe6a00b0..7c1ae87f5b6 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java @@ -7,7 +7,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java index 1017cf4032d..fe6bcd4acba 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java @@ -8,8 +8,8 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java index 3e6fd3ddb1e..89636a984b3 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java @@ -8,8 +8,8 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java index 566acc99eff..6394c234bae 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java @@ -7,7 +7,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.ObjectParameter; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataEntity; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorUniqueResourcesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorUniqueResourcesTest.java index 7963d05023c..25e16358e40 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorUniqueResourcesTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorUniqueResourcesTest.java @@ -7,7 +7,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.usage.UniqueResource; import ai.timefold.solver.service.quarkus.deployment.testdata.uniqueresource.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.uniqueresource.TestdataRest; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java index b0928cdcb77..b70c9a33e47 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import ai.timefold.solver.service.definition.api.ResourceType; +import ai.timefold.solver.service.definition.internal.descriptor.ResourceType; import org.junit.jupiter.api.Test; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ProcessModelUITest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ProcessModelUITest.java index 56e006daf37..950526d608a 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ProcessModelUITest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ProcessModelUITest.java @@ -7,7 +7,7 @@ import java.nio.file.Files; import java.nio.file.Path; -import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java index 8a6835ae750..66ee54ae2b8 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java @@ -9,9 +9,9 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.IssueType; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataEntity; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java index 594b3151f38..985d0917225 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java @@ -7,10 +7,10 @@ import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java index 60774babec5..c15b794d8da 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java @@ -8,7 +8,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; import ai.timefold.solver.service.quarkus.deployment.ExtensionTestUtil; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java index 32bf66e42dd..197e6736574 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java index fdd9aa9aa20..f17e8d0497b 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java index 11a8f8408ee..5929da4c0e6 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java @@ -2,7 +2,7 @@ import java.time.Duration; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java index b71f8a11347..1fee824067d 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java index a76b999dee9..500186aeae6 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java index 4071cb6510d..aea57142179 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java index ab9c9b55c4c..a2459222297 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java index fecfb905b52..1eebe4aa316 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.domain.ConstraintReference; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.description.ConstraintReference; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java index 34de2c2dc72..1cfb64f1e96 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java index e02798aaf07..35b387f91c7 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java index cc72df3d686..d1015167682 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java @@ -3,8 +3,8 @@ import java.math.BigDecimal; import java.time.Duration; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java index 8f2cdfdefdc..11970a14dd2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java index aaf028d2b66..7f05977d078 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java index 2b22e908ce4..43410a46b7d 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java index 46ece90728f..764dac15991 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java index 0f47bb79261..48d051987ea 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; @ApplicationScoped public class TestdataModelConvertor implements diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java index 68d87e9863d..e122c576602 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; public class TestdataModelInput implements ModelInput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java index 0f59d9d72d5..033b00a5eb4 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java index dc1b8ef1926..30e9bb8566e 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; public class TestdataModelOutput implements ModelOutput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java index 7871b64bd74..9a436f3e616 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java index 980dfd020df..fab545101e7 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java index bf96277b9bb..a89fad5820d 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, ModelInput, ModelOutput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java index d05d2cc67c3..e7f871eff05 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java @@ -4,14 +4,14 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java index aed22e6e7f6..5a2c21f06b8 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java index c3754fde2b5..9041cb3f8b4 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; public class DuplicateTestIssue extends TestdataAbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java index bec28f3db52..38ed358f87e 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java @@ -2,8 +2,8 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; public class TestIssue extends TestdataAbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java index d9ca4920472..e10d320ee7d 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; public abstract class TestdataAbstractIssue extends AbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java index 539c32f5916..964f90a7ea1 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java @@ -2,9 +2,9 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; /** diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java index 68b006b85d2..f9ac35f05de 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java index cf74bee6713..398f882be14 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java index 0c077d50475..fa5ea61a420 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java index 073aaf10e86..d350a20e535 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { } diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java index 3677ca4c882..c4d9ad76217 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java index 72e730b8219..0830a294dc8 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java index e2c9e44e620..20dbd5bc142 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java @@ -4,14 +4,14 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java index 2f3a6f1896b..caab05b5eb1 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java index d991923bac9..f3c9a261a78 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java index a45e5b3c7bc..46670550848 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java index 85f97de6a46..a1e11712d03 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java index 6ea54a2c545..6e411856170 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java @@ -11,7 +11,7 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java index efa838b520a..48602666006 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java index b4eb156e55b..7eb160a1017 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ScoreAnalysisRequest; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java index a4063720114..cb000d009ae 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java @@ -22,9 +22,9 @@ import jakarta.ws.rs.ext.ReaderInterceptor; import jakarta.ws.rs.ext.ReaderInterceptorContext; -import ai.timefold.solver.service.definition.api.ModelDescriptor; -import ai.timefold.solver.service.definition.api.validation.Validated; -import ai.timefold.solver.service.definition.api.validation.Validator; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; +import ai.timefold.solver.service.definition.api.validation.schema.Validated; +import ai.timefold.solver.service.definition.internal.validation.schema.Validator; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java index b3e059fe7b1..7607178d1f5 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java @@ -4,7 +4,7 @@ import java.util.Collections; import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import io.quarkus.runtime.RuntimeValue; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index ffd09f9b9ae..b5bbf3de11a 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -7,9 +7,9 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java index 836de400723..d86602e0372 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java @@ -22,33 +22,33 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolvingStatus; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; -import ai.timefold.solver.service.definition.api.domain.RunConfiguration; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; -import ai.timefold.solver.service.definition.api.error.ValidationErrorInfo; -import ai.timefold.solver.service.definition.api.log.LogInfo; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ValidationErrorInfo; +import ai.timefold.solver.service.definition.api.dto.log.LogInfo; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.api.rest.OperationId; import ai.timefold.solver.service.definition.api.rest.OperationOnPost; -import ai.timefold.solver.service.definition.api.validation.Issue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.Validated; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationIssueTypes; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.schema.Validated; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java index bac2d778f4b..6d469ccdd6f 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java @@ -9,7 +9,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java index aeaf8eed7e6..f7721f9b1da 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java @@ -6,7 +6,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; @Provider diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java index 5a7330f2d99..d506b32357e 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java @@ -6,7 +6,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; @Provider diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java index 2c1f3e4e23c..20ea44709dd 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java @@ -6,7 +6,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import org.slf4j.Logger; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java index 794b5c36799..68eacda60dd 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java @@ -6,7 +6,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.slf4j.Logger; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java index 80a5a6b7b2d..709f9558834 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java @@ -8,7 +8,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java index 0c767c69978..8667658b118 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java @@ -9,7 +9,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java index bfbbacad768..c443d585b06 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java index cfdda9c098b..47faf89add4 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.testmodel; -import ai.timefold.solver.service.definition.api.domain.DataFormat; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java index b5ff1edb7bc..9f6fa5becd1 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.testmodel; -import ai.timefold.solver.service.definition.api.domain.DataFormat; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java index 94c2c03a654..156927aff8d 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java @@ -2,9 +2,9 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; import ai.timefold.solver.service.testmodel.domain.EmployeeSchedule; import ai.timefold.solver.service.testmodel.domain.Shift; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java index e63f810265d..cd98f51b465 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java @@ -3,9 +3,9 @@ import java.time.OffsetDateTime; import java.util.List; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java index 34ff1d14ebc..feaf61dd476 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java @@ -8,11 +8,11 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; import ai.timefold.solver.service.testmodel.EmployeeScheduleInputMetrics; import ai.timefold.solver.service.testmodel.EmployeeScheduleOutputMetrics; diff --git a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java index c5832828bf6..0ce78af35d1 100644 --- a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java @@ -29,19 +29,19 @@ import jakarta.ws.rs.core.MediaType; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.SolvingStatus; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; -import ai.timefold.solver.service.definition.api.domain.RunConfiguration; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; import ai.timefold.solver.service.definition.api.rest.OperationOnPost; -import ai.timefold.solver.service.definition.api.validation.IssueCode; -import ai.timefold.solver.service.definition.api.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.validation.IssueType; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationIssueTypes; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java index 49b8469ff1e..7a3b4924874 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java @@ -12,17 +12,17 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.domain.ModelRequest; -import ai.timefold.solver.service.definition.api.domain.ModelResponse; -import ai.timefold.solver.service.definition.api.log.LogInfo; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.dto.log.LogInfo; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index 2890b9da1d6..030f5bb87ef 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -32,27 +32,27 @@ import ai.timefold.solver.core.api.solver.SolverStatus; import ai.timefold.solver.core.api.solver.event.EventProducerId; import ai.timefold.solver.core.api.solver.event.NewBestSolutionEvent; -import ai.timefold.solver.service.definition.api.ModelConvertor; -import ai.timefold.solver.service.definition.api.ModelConvertorBase; -import ai.timefold.solver.service.definition.api.ModelInput; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.ModelPostProcessor; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.SolvingStatus; -import ai.timefold.solver.service.definition.api.Status; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelConfig; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertorBase; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; +import ai.timefold.solver.service.definition.internal.dataset.Status; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java index 1d9d8ba626f..e37434eb044 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java @@ -12,7 +12,7 @@ import ai.timefold.solver.core.api.solver.change.ProblemChange; import ai.timefold.solver.core.api.solver.phase.PhaseId; import ai.timefold.solver.core.api.solver.termination.TerminationId; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import org.jspecify.annotations.Nullable; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java index e2fd7230d46..4924dde8933 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java @@ -2,7 +2,7 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java index 6aa54eed080..defbdc95f46 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java @@ -5,10 +5,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherBase; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherBase; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; import io.quarkus.arc.All; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java index fdc6a2f2e76..fd902efef7d 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java @@ -6,10 +6,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirector; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorBase; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirector; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorBase; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java index f4c11295700..ef84ddc72c5 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java @@ -14,10 +14,10 @@ import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.ModelPostProcessor; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.log.LogInfo; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java index 5204b317f5f..c2c2d4db1c1 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java @@ -13,9 +13,9 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; -import ai.timefold.solver.service.definition.api.ModelOutput; -import ai.timefold.solver.service.definition.api.ModelPostProcessor; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java index 4e0d193c6b9..ee56c2c61d0 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java @@ -14,7 +14,7 @@ import ai.timefold.solver.core.config.solver.termination.DiminishedReturnsTerminationConfig; import ai.timefold.solver.core.config.solver.termination.TerminationCompositionStyle; import ai.timefold.solver.core.config.solver.termination.TerminationConfig; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java index 958067fd8ad..f33674ed220 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java @@ -7,10 +7,10 @@ import java.util.Set; import java.util.UUID; -import ai.timefold.solver.service.definition.api.SolvingStatus; -import ai.timefold.solver.service.definition.api.domain.Configuration; -import ai.timefold.solver.service.definition.api.domain.Metadata; -import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java index 03c176fe099..17fd1517a60 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java @@ -8,7 +8,7 @@ import ai.timefold.solver.core.config.solver.termination.TerminationCompositionStyle; import ai.timefold.solver.core.config.solver.termination.TerminationConfig; -import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.junit.jupiter.api.Test; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java index 4fe3f3a9a95..4dfc4075085 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java index a9ec75f6db1..4798d5b5ca2 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java index 0d974ecc6a1..327aa776946 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java @@ -2,7 +2,7 @@ import java.util.Objects; -import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; public class TestdataModelInput implements ModelInput { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java index a47bf58c5b6..89895b2557d 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java index 2df4f3c1d7f..7acbc326064 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; public class TestdataModelOutput implements ModelOutput { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java index 053a3c225e1..4243c061f33 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataStorageService.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataStorageService.java index 9cd74c58f0a..26a12279ca3 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataStorageService.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataStorageService.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.worker.impl.testdata; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import ai.timefold.solver.service.definition.internal.storage.Storage; From 528c56941eaea8de59fa8728b83f58bee36d868d Mon Sep 17 00:00:00 2001 From: rsynek Date: Tue, 10 Nov 2026 16:42:34 +0100 Subject: [PATCH 4/9] address review comments --- .../definition/api/dto/dataset/Metadata.java | 2 +- .../api/dto/patch/ModelInputPatchRequest.java | 2 +- .../scoreanalysis/ScoreAnalysisConfig.java | 1 + .../dto/validation/ValidationIssueTypes.java | 1 + .../api/dto/validation/ValidationResult.java | 1 + .../validation/{ => issue}/AbstractIssue.java | 3 +- .../api/dto/validation/{ => issue}/Issue.java | 3 +- .../dto/validation/{ => issue}/IssueCode.java | 2 +- .../validation/{ => issue}/IssueSeverity.java | 2 +- .../dto/validation/{ => issue}/IssueType.java | 5 +-- .../{ => issue}/metadata/IssueMessage.java | 7 ++-- .../{ => issue/metadata}/IssueMetadata.java | 6 ++-- .../validation/model/ValidationBuilder.java | 10 +++--- .../impl/solver/SolverWorkerFacade.java | 10 +++--- .../impl/validation/AbstractLegacyIssue.java | 8 ++--- .../impl/validation/JsonMappingError.java | 6 ++-- .../ValidationIssueTypeCatalog.java | 2 +- .../internal/dataset/ModelPostProcessor.java | 2 +- .../definition/internal/dataset/Status.java | 4 +-- .../descriptor/ModelConfigParameter.java | 2 +- .../internal/events/BestSolutionEvent.java | 2 +- .../internal/events/DatasetComputedEvent.java | 2 +- .../events/FinalBestSolutionEvent.java | 2 +- .../internal/events/InitSolutionEvent.java | 2 +- .../internal/events/ItemStarted.java | 2 +- .../internal/events/SolverWorkerEvent.java | 2 +- .../internal/events/ValidationSummary.java | 6 ++-- .../storage/AbstractStorageService.java | 20 ++++++------ .../demo/AbstractBasicDemoDataGenerator.java | 2 +- .../definition/preview/api/demo/DemoData.java | 2 +- .../spi/conversion/ModelConvertor.java | 6 ++-- .../spi/validation/ModelValidator.java | 2 +- .../api/ModelMaturityLevelTest.java | 1 + .../SolverTerminationConfigTest.java | 1 + .../ValidationIssueSerializationTest.java | 8 ++--- .../events/ValidationSummaryTest.java | 8 ++--- .../AbstractStorageServiceRetryTest.java | 12 +++---- .../impl/AbstractMapsModelAPIResource.java | 2 +- .../DefaultConfigProfileProcessor.java | 2 +- .../TimefoldModelDescriptorProcessor.java | 12 +++---- .../deployment/TimefoldModelsProcessor.java | 10 +++--- .../rest/DefaultModelResourceTypeInfo.java | 2 +- .../rest/EnterpriseModelResourceTypeInfo.java | 2 +- ...terpriseModelResourceWithMapsTypeInfo.java | 2 +- .../rest/ModelResourceWithMapsTypeInfo.java | 2 +- .../DiscoveredIssueTypesBuildItem.java | 2 +- .../ValidationIssueTypeCatalogProcessor.java | 6 ++-- ...nfigDescriptorConstraintReferenceTest.java | 2 +- .../ModelConfigDescriptorDefaultTest.java | 2 +- .../ModelConfigDescriptorSchemaTest.java | 2 +- .../deployment/ValidationIssueTypesTest.java | 2 +- .../AbstractTrivialModelConvertorTest.java | 2 +- .../ConstraintGroupDescriptorTest.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../TestdataSolution.java | 2 +- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../modelconfigschema/TestdataSolution.java | 2 +- .../storage/TestdataModelConvertor.java | 2 +- .../testdata/storage/TestdataSolution.java | 2 +- .../validation/TestdataModelValidator.java | 12 +++---- .../DuplicateTestIssue.java | 2 +- .../validationduplicates/TestIssue.java | 4 +-- .../TestdataAbstractIssue.java | 8 ++--- .../TestdataModelValidator.java | 2 +- .../AbstractTrivialModelConvertor.java | 8 ++--- ...bstractModelRequestMessageBodyReaders.java | 2 +- ...coreAnalysisRequestMessageBodyReaders.java | 2 +- .../ValidatingReaderInterceptorContext.java | 2 +- .../ValidationIssueTypeCatalogRecorder.java | 2 +- .../rest/impl/AbstractDemoDataResource.java | 4 +-- .../rest/impl/AbstractModelAPIResource.java | 28 ++++++++-------- .../AbstractEmployeeScheduleIssue.java | 8 ++--- .../testmodel/ShiftEndBeforeStartIssue.java | 6 ++-- .../EmployeeScheduleResourceTest.java | 6 ++-- .../impl/DefaultSolverWorkerFacade.java | 12 +++---- .../service/worker/impl/SolverWorker.java | 32 +++++++++---------- .../SolverModelEnricherServiceImpl.java | 2 +- ...verModelEnrichmentDirectorServiceImpl.java | 2 +- .../worker/impl/log/LogsPostProcessor.java | 6 ++-- .../monitoring/FlightRecorderProfiler.java | 4 +-- .../impl/DefaultSolverWorkerFacadeTest.java | 2 +- 85 files changed, 198 insertions(+), 191 deletions(-) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/AbstractIssue.java (95%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/Issue.java (92%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/IssueCode.java (98%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/IssueSeverity.java (98%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/IssueType.java (89%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue}/metadata/IssueMessage.java (70%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/{ => issue/metadata}/IssueMetadata.java (76%) diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java index 2640df77abb..f08fecf9765 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java @@ -8,8 +8,8 @@ import java.util.Set; import java.util.UUID; -import ai.timefold.solver.service.definition.internal.dataset.Status; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.internal.dataset.Status; import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java index ea4e041ca20..8fb09890582 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java @@ -2,9 +2,9 @@ import java.util.List; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java index eff7ab22351..c7a63ef0406 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisConfig.java @@ -1,6 +1,7 @@ package ai.timefold.solver.service.definition.api.dto.scoreanalysis; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; + import org.eclipse.microprofile.openapi.annotations.media.Schema; @Schema(additionalProperties = Schema.False.class) diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java index c87e983bd8b..82934cbcb6f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java @@ -2,6 +2,7 @@ import java.util.Collection; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import org.eclipse.microprofile.openapi.annotations.media.Schema; public record ValidationIssueTypes( diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java index 555830d4ee5..ec75137f334 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java @@ -2,6 +2,7 @@ import java.util.Collection; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/AbstractIssue.java similarity index 95% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/AbstractIssue.java index f41220af971..1d80e08172b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/AbstractIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/AbstractIssue.java @@ -1,8 +1,9 @@ -package ai.timefold.solver.service.definition.api.dto.validation; +package ai.timefold.solver.service.definition.api.dto.validation.issue; import java.util.Collections; import java.util.List; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java similarity index 92% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java index 1186ef8653c..8b539b5a91f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/Issue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java @@ -1,7 +1,8 @@ -package ai.timefold.solver.service.definition.api.dto.validation; +package ai.timefold.solver.service.definition.api.dto.validation.issue; import java.util.List; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import org.jspecify.annotations.NonNull; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueCode.java similarity index 98% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueCode.java index e2a771457f9..77c0d26a4c3 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueCode.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueCode.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.dto.validation; +package ai.timefold.solver.service.definition.api.dto.validation.issue; import java.util.Objects; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueSeverity.java similarity index 98% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueSeverity.java index 8d106698cdd..a4df4b4e541 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueSeverity.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueSeverity.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.api.dto.validation; +package ai.timefold.solver.service.definition.api.dto.validation.issue; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java similarity index 89% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java index 7b15a044cc1..9049ae0b2d5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueType.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java @@ -1,9 +1,10 @@ -package ai.timefold.solver.service.definition.api.dto.validation; +package ai.timefold.solver.service.definition.api.dto.validation.issue; import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import org.eclipse.microprofile.openapi.annotations.media.Schema; import io.quarkus.runtime.annotations.RecordableConstructor; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java similarity index 70% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java index 94c55a6710b..af3ac70fff2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/metadata/IssueMessage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java @@ -1,9 +1,10 @@ -package ai.timefold.solver.service.definition.api.dto.validation.metadata; - -import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; +package ai.timefold.solver.service.definition.api.dto.validation.issue.metadata; import io.quarkus.runtime.annotations.RecordableConstructor; +/** + * Represents a human-readable message related to an {@link ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType}. + */ public record IssueMessage(String message) implements IssueMetadata { public static final String TYPE = "Message"; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMetadata.java similarity index 76% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMetadata.java index ecad6b49c98..e038b5819b4 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/IssueMetadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMetadata.java @@ -1,6 +1,4 @@ -package ai.timefold.solver.service.definition.api.dto.validation; - -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +package ai.timefold.solver.service.definition.api.dto.validation.issue.metadata; import org.eclipse.microprofile.openapi.annotations.media.Schema; @@ -15,7 +13,7 @@ @Schema(oneOf = { IssueMessage.class }) public interface IssueMetadata { - @Schema(description = "The type of the issue type detail.", implementation = String.class, readOnly = true) + @Schema(description = "The type of the issue metadata.", implementation = String.class, readOnly = true) @JsonProperty(value = "type", access = JsonProperty.Access.READ_ONLY) String getType(); } diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java index 75c0d3447ac..18855bf6c44 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java @@ -3,13 +3,13 @@ import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java index e0c18ce1898..90a914cf348 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java @@ -3,18 +3,18 @@ import java.util.List; import java.util.Set; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.rest.DatasetSelector; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.rest.DatasetSelector; /** * Facade used by the REST layer to interact with dataset storage and the solver worker, diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java index b02976adddc..b7b84ed3ceb 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java index f79d43cdd87..e51eb493af2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; /** * Internal validation issue to translate a JSON parsing error diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java index 876808c3047..afc1378b1c2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java @@ -2,7 +2,7 @@ import java.util.Collection; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; /** * Provides all supported {@link IssueType validation issue types}. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java index 1fedf9b604d..011466793cb 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.dataset; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; public interface ModelPostProcessor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java index 33d8d39ce1c..58115d6bf39 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/Status.java @@ -1,10 +1,10 @@ package ai.timefold.solver.service.definition.internal.dataset; -import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; - import java.time.OffsetDateTime; import java.util.Map; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; + public interface Status { void solvingStarted(); diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java index 68decc85dcd..972bb3385e9 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import org.eclipse.microprofile.openapi.models.media.Schema.SchemaType; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java index 99f0eb663c8..83a5de7f05a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * This event is sent when a new best solution is found during the solving process. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java index 45595d8c36b..a0b16e6bfb9 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Event sent when the outputs of a dataset are computed before solving. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java index 9bdd387cda3..f8d12fbe409 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Sent when the solver worker produces the final best solution upon termination conditions. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java index 814e4793646..fc05757442c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Sent when a solver worker produces the first, initialized, solution. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java index 353bef41495..841f384e306 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Event sent when the solver worker starts solving the dataset. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java index f3e39da6219..a97067387bd 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.spi.model.SolverModel; /** * Base class for events produced by the SolverWorker. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java index f123f216b22..2ee33dac002 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java @@ -3,10 +3,10 @@ import java.util.HashMap; import java.util.Map; -import ai.timefold.solver.service.definition.api.dto.validation.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; /** * A compact summary of a dataset validation, carrying the overall {@link ValidationStatus} and issue counts by diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java index a24c972d322..84c06271178 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java @@ -16,29 +16,29 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.internal.dataset.SolverInput; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; +import ai.timefold.solver.service.definition.internal.dataset.SolverInput; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java index fd55ca6dab7..b403d789162 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java @@ -2,9 +2,9 @@ import java.util.List; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; /** * Default {@link DemoDataGenerator} implementation for models that provide only a single demo data set with ID diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java index f76e9bc843f..1f043779ff0 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.preview.api.demo; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; public record DemoData(DemoMetaData metaData, ModelRequest modelRequest) { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java index 21340d850f5..98dc5c92cc2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java @@ -3,13 +3,13 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java index f4f4931756f..a25a2bb94f3 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java @@ -1,9 +1,9 @@ package ai.timefold.solver.service.definition.spi.validation; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; /** * Provides a complex validation of the model input before the solving, or other operation, starts. diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java index bc70cbc7b76..db6f28309e4 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/ModelMaturityLevelTest.java @@ -1,6 +1,7 @@ package ai.timefold.solver.service.definition.api; import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; + import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java index d717f905ed6..aa2474edf35 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java @@ -6,6 +6,7 @@ import java.time.Duration; import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; + import org.junit.jupiter.api.Test; class SolverTerminationConfigTest { diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java index 233d38ce6ee..248b76c4b0a 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java index 10e585bcb30..151b16f70b5 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java @@ -5,11 +5,11 @@ import java.util.List; import java.util.Map; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java index 14dcc710954..c3b3bfb0180 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java @@ -13,18 +13,18 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java index 791a82e6163..430a9dcce05 100644 --- a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java +++ b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java @@ -18,7 +18,7 @@ import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.dto.validation.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java index 1dc6b5406c7..61319c6b5e1 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java @@ -9,11 +9,11 @@ import java.time.Duration; import java.util.Map; -import ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile; import ai.timefold.solver.service.definition.api.dto.dataset.MapsConfiguration; import ai.timefold.solver.service.definition.api.dto.dataset.ResourcesConfiguration; import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; +import ai.timefold.solver.service.definition.internal.configuration.ConfigurationProfile; import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java index 5d3de865d06..f1beb522362 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java @@ -36,16 +36,12 @@ import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel; import ai.timefold.solver.core.api.solver.SolverFactory; import ai.timefold.solver.core.impl.util.SolverVersionUtils; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; -import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; -import ai.timefold.solver.service.definition.internal.descriptor.ResourceType; -import ai.timefold.solver.service.definition.internal.descriptor.Resources; -import ai.timefold.solver.service.definition.internal.descriptor.TrialConfig; import ai.timefold.solver.service.definition.api.description.ConstraintGroupInfo; import ai.timefold.solver.service.definition.api.description.ConstraintInfo; import ai.timefold.solver.service.definition.api.description.ConstraintReference; -import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.api.rest.OperationId; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; @@ -55,8 +51,12 @@ import ai.timefold.solver.service.definition.internal.descriptor.ModelBuildInfo; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.OutputMetricDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; +import ai.timefold.solver.service.definition.internal.descriptor.ResourceType; +import ai.timefold.solver.service.definition.internal.descriptor.Resources; +import ai.timefold.solver.service.definition.internal.descriptor.TrialConfig; import ai.timefold.solver.service.definition.internal.descriptor.UISupport; import ai.timefold.solver.service.definition.internal.descriptor.VisualizationPageDescriptor; import ai.timefold.solver.service.definition.preview.api.demo.AbstractBasicDemoDataGenerator; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java index 84eb87a840c..49187e8a87f 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java @@ -13,17 +13,17 @@ import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel; import ai.timefold.solver.quarkus.deployment.api.ConstraintMetaModelBuildItem; -import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; +import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; -import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; +import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java index a5a8ef8a4a9..4f7958d0ac6 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java index f60355ead00..4cedda31042 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java index 1af63ec0696..b89fdb3cc42 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java index 870d1137e7c..202678fefd6 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java index 4882185de8e..3f3bd29db44 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import io.quarkus.builder.item.SimpleBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java index 581ee1c0994..55dd6ae595d 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java @@ -11,9 +11,9 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java index 7c1ae87f5b6..cafd56b8a71 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java @@ -7,9 +7,9 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataEntity; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java index fe6bcd4acba..5d1fbc95823 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java @@ -8,10 +8,10 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.ObjectParameter; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataConstraintProvider; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java index 89636a984b3..15e191c8111 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java @@ -8,10 +8,10 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataEntity; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java index 66ee54ae2b8..4607a126ae6 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java @@ -10,7 +10,7 @@ import jakarta.inject.Inject; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataConstraintProvider; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java index 985d0917225..e66fc14d15d 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java @@ -7,10 +7,10 @@ import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java index c15b794d8da..6708b981287 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java @@ -8,9 +8,9 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintDescriptor; import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.quarkus.deployment.ExtensionTestUtil; import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataConstraintProvider; import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataEntity; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java index 197e6736574..58d4a4d0b2a 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java index aea57142179..21112fa6f59 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java index 1eebe4aa316..abef91d566c 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.description.ConstraintReference; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java index 1cfb64f1e96..f5229652315 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java index 35b387f91c7..b84eb5c36ec 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java @@ -11,9 +11,9 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java index d1015167682..9767d808d50 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java @@ -3,8 +3,8 @@ import java.math.BigDecimal; import java.time.Duration; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.metrics.DataFormat; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java index 11970a14dd2..d3332a6c374 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java index 7f05977d078..535dee880a5 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java @@ -11,9 +11,9 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java index 48d051987ea..ee2b92e3d69 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; @ApplicationScoped public class TestdataModelConvertor implements diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java index fab545101e7..35b75fac09b 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.model.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java index e7f871eff05..bf02c34bfc2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java @@ -5,13 +5,13 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java index 9041cb3f8b4..bab10583bad 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; public class DuplicateTestIssue extends TestdataAbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java index 38ed358f87e..823ff40a618 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java @@ -2,8 +2,8 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; public class TestIssue extends TestdataAbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java index e10d320ee7d..c416720ce97 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; public abstract class TestdataAbstractIssue extends AbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java index 964f90a7ea1..26ec9cac23c 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java @@ -3,8 +3,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; /** diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java index 20dbd5bc142..aadad7a99c2 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java @@ -4,14 +4,14 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java index 48602666006..d4711a785c8 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java index 7eb160a1017..0bee6e3a65c 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java index cb000d009ae..6f1cb763f47 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java @@ -22,8 +22,8 @@ import jakarta.ws.rs.ext.ReaderInterceptor; import jakarta.ws.rs.ext.ReaderInterceptorContext; -import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.api.validation.schema.Validated; +import ai.timefold.solver.service.definition.internal.descriptor.ModelDescriptor; import ai.timefold.solver.service.definition.internal.validation.schema.Validator; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java index 7607178d1f5..bdabdc42ec2 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java @@ -4,7 +4,7 @@ import java.util.Collections; import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import io.quarkus.runtime.RuntimeValue; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index b5bbf3de11a..a11561016d4 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -7,11 +7,11 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java index d86602e0372..ff18addd263 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java @@ -22,38 +22,38 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; import ai.timefold.solver.service.definition.api.dto.error.ValidationErrorInfo; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.api.rest.OperationId; import ai.timefold.solver.service.definition.api.rest.OperationOnPost; -import ai.timefold.solver.service.definition.api.dto.validation.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.schema.Validated; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.validation.schema.Validated; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.events.SolverChannels; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java index c443d585b06..24f905a5834 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java @@ -2,10 +2,10 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueMetadata; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java index cd98f51b465..8b2518a9ae9 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/ShiftEndBeforeStartIssue.java @@ -3,9 +3,9 @@ import java.time.OffsetDateTime; import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java index 0ce78af35d1..3bf86544644 100644 --- a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java @@ -37,9 +37,9 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; import ai.timefold.solver.service.definition.api.rest.OperationOnPost; -import ai.timefold.solver.service.definition.api.dto.validation.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.IssueType; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java index 7a3b4924874..999cb9bde6d 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java @@ -12,17 +12,12 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; @@ -35,6 +30,11 @@ import ai.timefold.solver.service.definition.internal.events.SolveTerminateCommand; import ai.timefold.solver.service.definition.internal.events.SolverChannels; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; import ai.timefold.solver.service.json.internal.patch.JsonPatch; import org.eclipse.microprofile.reactive.messaging.Channel; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index 030f5bb87ef..e20bcf12c13 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -32,28 +32,16 @@ import ai.timefold.solver.core.api.solver.SolverStatus; import ai.timefold.solver.core.api.solver.event.EventProducerId; import ai.timefold.solver.core.api.solver.event.NewBestSolutionEvent; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertorBase; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; -import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; -import ai.timefold.solver.service.definition.internal.dataset.Status; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; -import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; +import ai.timefold.solver.service.definition.internal.dataset.Status; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; @@ -77,6 +65,18 @@ import ai.timefold.solver.service.definition.internal.platform.OnStartCommand; import ai.timefold.solver.service.definition.internal.solver.BestSolutionConsumerDecorator; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.spi.conversion.ModelConvertorBase; +import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.spi.validation.ModelValidator; import ai.timefold.solver.service.worker.impl.termination.TerminationService; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java index defbdc95f46..6e8687079f3 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java @@ -5,10 +5,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricher; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherBase; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import io.quarkus.arc.All; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java index fd902efef7d..15da7362924 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java @@ -6,10 +6,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirector; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorBase; import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java index ef84ddc72c5..c71554c839c 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java @@ -14,13 +14,13 @@ import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; +import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java index c2c2d4db1c1..0df9095684d 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java @@ -13,10 +13,10 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; -import ai.timefold.solver.service.definition.spi.model.SolverModel; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; +import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.spi.model.SolverModel; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java index f33674ed220..e59111b7742 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacadeTest.java @@ -7,9 +7,9 @@ import java.util.Set; import java.util.UUID; -import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; From db67a9b6192674cab8bb33af20e1c257ce485138 Mon Sep 17 00:00:00 2001 From: rsynek Date: Tue, 10 Nov 2026 16:48:33 +0100 Subject: [PATCH 5/9] chore: remove the SPI package --- .../quickstart/service/getting-started.adoc | 4 ++-- .../model => api}/AbstractSimpleModel.java | 14 +++++------ .../{spi/model => api}/SolverModel.java | 2 +- .../conversion/ModelConvertor.java | 10 ++++---- .../conversion/ModelConvertorBase.java | 2 +- .../api/dto/dataset/Configuration.java | 2 -- .../definition/api/dto/dataset/Metadata.java | 2 +- .../api/dto/dataset/ModelConfig.java | 2 -- .../api/dto/dataset/ModelConfigOverrides.java | 5 ++++ .../api/dto/dataset/ModelInput.java | 5 ++++ .../api/dto/dataset/ModelOutput.java | 5 ++++ .../api/dto/dataset/ModelRequest.java | 3 --- .../api/dto/dataset/ModelResponse.java | 5 ++-- .../api/dto/patch/ModelInputPatchRequest.java | 2 +- .../ModelConstraintJustification.java | 2 +- .../scoreanalysis/ScoreAnalysisRequest.java | 4 ++-- .../enrichment/SolverModelEnricher.java | 4 ++-- .../enrichment/SolverModelEnricherBase.java | 2 +- .../SolverModelEnricherService.java | 4 ++-- .../SolverModelEnrichmentDirector.java | 4 ++-- .../SolverModelEnrichmentDirectorBase.java | 2 +- .../SolverModelEnrichmentDirectorService.java | 4 ++-- .../metrics/InputMetricsAware.java | 2 +- .../api/metrics/ModelInputMetrics.java | 4 ++++ .../api/metrics/ModelOutputMetrics.java | 5 ++++ .../metrics/OutputMetricsAware.java | 2 +- .../validation/ModelValidator.java | 6 ++--- .../impl/solver/SolverWorkerFacade.java | 10 ++++---- .../internal/dataset/ModelPostProcessor.java | 4 ++-- .../descriptor/ModelConfigParameter.java | 2 +- .../internal/events/BestSolutionEvent.java | 2 +- .../internal/events/DatasetComputedEvent.java | 2 +- .../events/DatasetValidatedEvent.java | 2 +- .../events/FinalBestSolutionEvent.java | 2 +- .../internal/events/InitSolutionEvent.java | 2 +- .../internal/events/ItemStarted.java | 2 +- .../internal/events/SolverWorkerEvent.java | 2 +- .../storage/AbstractStorageService.java | 12 +++++----- .../demo/AbstractBasicDemoDataGenerator.java | 4 ++-- .../definition/preview/api/demo/DemoData.java | 4 ++-- .../spi/dto/ModelConfigOverrides.java | 5 ---- .../definition/spi/dto/ModelInput.java | 5 ---- .../definition/spi/dto/ModelOutput.java | 5 ---- .../spi/metrics/ModelInputMetrics.java | 4 ---- .../spi/metrics/ModelOutputMetrics.java | 5 ---- .../AbstractStorageServiceRetryTest.java | 12 +++++----- .../client/api/TravelTimeMatrixEnricher.java | 2 +- .../client/impl/WaypointsServiceImpl.java | 2 +- .../SaveWaypointsPostProcessor.java | 4 ++-- .../service/client/util/DummyModelInput.java | 2 +- .../service/client/util/DummyModelOutput.java | 2 +- .../client/util/DummyStorageService.java | 8 +++---- .../maps/service/client/util/SampleModel.java | 8 +++---- .../api/LocationsAwareSolverModel.java | 2 +- .../integration/api/WaypointsExtractor.java | 2 +- .../impl/AbstractMapsModelAPIResource.java | 14 +++++------ .../TimefoldModelConvertorProcessor.java | 4 ++-- .../deployment/TimefoldModelsProcessor.java | 16 ++++++------- .../TimefoldValidatorProcessor.java | 4 ++-- .../rest/DefaultModelResourceTypeInfo.java | 2 +- .../rest/EnterpriseModelResourceTypeInfo.java | 2 +- ...terpriseModelResourceWithMapsTypeInfo.java | 2 +- .../rest/ModelResourceWithMapsTypeInfo.java | 2 +- .../AbstractTrivialModelConvertorTest.java | 6 ++--- .../TestdataModelConvertor.java | 2 +- .../constraintgroup/TestdataSolution.java | 6 ++--- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataSolution.java | 6 ++--- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../modelconfigdefault/TestdataSolution.java | 6 ++--- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../TestdataSolution.java | 10 ++++---- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../modelconfigschema/TestdataSolution.java | 10 ++++---- .../testdata/storage/TestdataModelConfig.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../storage/TestdataModelConvertor.java | 2 +- .../testdata/storage/TestdataModelInput.java | 2 +- .../storage/TestdataModelInputMetrics.java | 2 +- .../testdata/storage/TestdataModelOutput.java | 2 +- .../storage/TestdataModelOutputMetrics.java | 2 +- .../testdata/storage/TestdataSolution.java | 6 ++--- .../uniqueresource/TestdataSolution.java | 6 ++--- .../validation/TestdataModelValidator.java | 2 +- .../testdata/validation/TestdataSolution.java | 6 ++--- .../TestdataModelValidator.java | 2 +- .../TestdataSolution.java | 6 ++--- .../deployment/it/TestdataModelConfig.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../it/TestdataModelInputMetrics.java | 2 +- .../it/TestdataModelOutputMetrics.java | 2 +- .../deployment/it/TestdataSolution.java | 10 ++++---- .../AbstractTrivialModelConvertor.java | 10 ++++---- .../defaults/EmptyModelConfigOverrides.java | 2 +- .../EmptyModelConstraintJustification.java | 2 +- .../defaults/EmptyModelInputMetrics.java | 2 +- .../defaults/EmptyModelOutputMetrics.java | 2 +- ...bstractModelRequestMessageBodyReaders.java | 4 ++-- ...coreAnalysisRequestMessageBodyReaders.java | 4 ++-- .../rest/impl/AbstractDemoDataResource.java | 4 ++-- .../rest/impl/AbstractModelAPIResource.java | 14 +++++------ .../EmployeeScheduleInputMetrics.java | 2 +- .../EmployeeScheduleOutputMetrics.java | 2 +- .../testmodel/EmployeeScheduleValidator.java | 2 +- .../testmodel/domain/EmployeeSchedule.java | 10 ++++---- .../EmployeeScheduleResourceTest.java | 2 +- .../impl/DefaultSolverWorkerFacade.java | 10 ++++---- .../service/worker/impl/SolverWorker.java | 24 +++++++++---------- .../worker/impl/SolverWorkerJobState.java | 2 +- .../SolverModelEnricherServiceImpl.java | 8 +++---- ...verModelEnrichmentDirectorServiceImpl.java | 8 +++---- .../worker/impl/log/LogsPostProcessor.java | 4 ++-- .../monitoring/FlightRecorderProfiler.java | 4 ++-- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConstraintJustification.java | 2 +- .../impl/testdata/TestdataModelInput.java | 2 +- .../testdata/TestdataModelInputMetrics.java | 2 +- .../impl/testdata/TestdataModelOutput.java | 2 +- .../testdata/TestdataModelOutputMetrics.java | 2 +- 122 files changed, 259 insertions(+), 267 deletions(-) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi/model => api}/AbstractSimpleModel.java (73%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi/model => api}/SolverModel.java (83%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/conversion/ModelConvertor.java (91%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/conversion/ModelConvertorBase.java (80%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfigOverrides.java create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelInput.java create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelOutput.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi/dto => api/dto/scoreanalysis}/ModelConstraintJustification.java (76%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnricher.java (80%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnricherBase.java (81%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnricherService.java (70%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnrichmentDirector.java (91%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnrichmentDirectorBase.java (83%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/enrichment/SolverModelEnrichmentDirectorService.java (86%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/metrics/InputMetricsAware.java (66%) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/metrics/OutputMetricsAware.java (67%) rename service/definition/src/main/java/ai/timefold/solver/service/definition/{spi => api}/validation/ModelValidator.java (81%) delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java diff --git a/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc b/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc index 97f7fb5eb78..de6d59fb982 100644 --- a/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc +++ b/docs/src/modules/ROOT/pages/quickstart/service/getting-started.adoc @@ -104,7 +104,7 @@ package org.acme.schooltimetabling.domain; import java.util.List; -import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; +import ai.timefold.solver.service.definition.api.AbstractSimpleModel; import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty; import ai.timefold.solver.core.api.domain.solution.PlanningScore; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; @@ -172,7 +172,7 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider import ai.timefold.solver.core.api.score.HardMediumSoftScore -import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel +import ai.timefold.solver.service.definition.api.AbstractSimpleModel @PlanningSolution class Timetable : AbstractSimpleModel() { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java similarity index 73% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java index 750f867049e..64a33b50047 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/AbstractSimpleModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java @@ -1,14 +1,14 @@ -package ai.timefold.solver.service.definition.spi.model; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.domain.solution.PlanningScore; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java similarity index 83% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java index a963b5e5721..69ef87d9de5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/model/SolverModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.model; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.Score; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java similarity index 91% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java index 98dc5c92cc2..05ad6a6c62b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.conversion; +package ai.timefold.solver.service.definition.api.conversion; import java.util.Optional; @@ -6,10 +6,10 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; import org.jspecify.annotations.NullMarked; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertorBase.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertorBase.java index 41186450378..9cffe56db7b 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/conversion/ModelConvertorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.conversion; +package ai.timefold.solver.service.definition.api.conversion; /** * Root interface for all {@link ModelConvertor} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java index 04c2061789c..7e48fb23d33 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Configuration.java @@ -1,7 +1,5 @@ package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; - import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java index f08fecf9765..ecc95b094e5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java @@ -10,7 +10,7 @@ import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; import ai.timefold.solver.service.definition.internal.dataset.Status; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java index d88b3389ad0..b4960f49bc5 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfig.java @@ -1,7 +1,5 @@ package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; - import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfigOverrides.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfigOverrides.java new file mode 100644 index 00000000000..bde03030830 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelConfigOverrides.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api.dto.dataset; + +public interface ModelConfigOverrides { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelInput.java new file mode 100644 index 00000000000..e789b44583e --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelInput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api.dto.dataset; + +public interface ModelInput { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelOutput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelOutput.java new file mode 100644 index 00000000000..790e02dd847 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelOutput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api.dto.dataset; + +public interface ModelOutput { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java index 999299ee135..c27efe8f4f0 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelRequest.java @@ -1,8 +1,5 @@ package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; - import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java index bb493459d49..60a20697aa4 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/ModelResponse.java @@ -1,8 +1,7 @@ package ai.timefold.solver.service.definition.api.dto.dataset; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java index 8fb09890582..0b0dd9b8863 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/patch/ModelInputPatchRequest.java @@ -3,7 +3,7 @@ import java.util.List; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ModelConstraintJustification.java similarity index 76% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ModelConstraintJustification.java index 83439384b5b..f89cce56868 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConstraintJustification.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ModelConstraintJustification.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.dto; +package ai.timefold.solver.service.definition.api.dto.scoreanalysis; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java index 801585171f3..86e083e51ca 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/scoreanalysis/ScoreAnalysisRequest.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.api.dto.scoreanalysis; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java similarity index 80% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java index 50ede0ca0e2..cafb973e4df 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricher.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public non-sealed interface SolverModelEnricher>> extends SolverModelEnricherBase { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java similarity index 81% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java index 85258d2b423..4219e3ab5c9 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; /** * Root interface for all {@link SolverModelEnricher} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java similarity index 70% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java index 1bf8e2a3318..f869a036cf8 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnricherService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public interface SolverModelEnricherService { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java similarity index 91% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java index 98dbbae2761..b9ac2e13bbf 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirector.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Provides a model-specific way of enriching a solver model, typically for models using multiple enrichers depending on each diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java similarity index 83% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java index 1aa812fac5a..eabd5efb158 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; /** * Root interface for all {@link SolverModelEnrichmentDirector} implementations. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java similarity index 86% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java index 7bf74810d06..ddb72274cb4 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/enrichment/SolverModelEnrichmentDirectorService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.service.definition.spi.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public interface SolverModelEnrichmentDirectorService { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java similarity index 66% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java index 8ed652b5ef9..6201d659cd1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/InputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.metrics; +package ai.timefold.solver.service.definition.api.metrics; public interface InputMetricsAware { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java new file mode 100644 index 00000000000..9f084c89540 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java @@ -0,0 +1,4 @@ +package ai.timefold.solver.service.definition.api.metrics; + +public interface ModelInputMetrics { +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java new file mode 100644 index 00000000000..fe316b3936f --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api.metrics; + +public interface ModelOutputMetrics { + +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java similarity index 67% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java index 9390d3fd0f0..8553261f937 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/OutputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.service.definition.spi.metrics; +package ai.timefold.solver.service.definition.api.metrics; public interface OutputMetricsAware { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java similarity index 81% rename from service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java index a25a2bb94f3..224b0267bf1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/validation/ModelValidator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.service.definition.spi.validation; +package ai.timefold.solver.service.definition.api.validation; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; /** * Provides a complex validation of the model input before the solving, or other operation, starts. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java index 90a914cf348..abbf88db57c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java @@ -10,11 +10,11 @@ import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; /** * Facade used by the REST layer to interact with dataset storage and the solver worker, diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java index 011466793cb..4d81f3050df 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.dataset; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; public interface ModelPostProcessor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java index 972bb3385e9..855b6a50b3c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.descriptor; import ai.timefold.solver.service.definition.api.metrics.DataFormat; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import org.eclipse.microprofile.openapi.models.media.Schema.SchemaType; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java index 83a5de7f05a..8f36e98dffc 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java @@ -2,7 +2,7 @@ import ai.timefold.solver.core.api.solver.SolverJob; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * This event is sent when a new best solution is found during the solving process. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java index a0b16e6bfb9..d089af951c1 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Event sent when the outputs of a dataset are computed before solving. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java index e11f2d76c35..4a635878063 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; /** * Sent when a dataset is successfully validated by {@link ModelValidator}. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java index f8d12fbe409..2a66d5a333f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java @@ -2,7 +2,7 @@ import ai.timefold.solver.core.api.solver.SolverJob; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Sent when the solver worker produces the final best solution upon termination conditions. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java index fc05757442c..1ff13cd02a8 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java @@ -2,7 +2,7 @@ import ai.timefold.solver.core.api.solver.SolverJob; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Sent when a solver worker produces the first, initialized, solution. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java index 841f384e306..5629a5e3526 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Event sent when the solver worker starts solving the dataset. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java index a97067387bd..69eb35a291a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java @@ -2,7 +2,7 @@ import ai.timefold.solver.core.api.solver.SolverJob; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Base class for events produced by the SolverWorker. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java index 84c06271178..280b669db3a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java @@ -33,12 +33,12 @@ import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java index b403d789162..844504019ee 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java @@ -3,8 +3,8 @@ import java.util.List; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; /** * Default {@link DemoDataGenerator} implementation for models that provide only a single demo data set with ID diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java index 1f043779ff0..31c4afc7f4f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.preview.api.demo; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; public record DemoData(DemoMetaData metaData, ModelRequest modelRequest) { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java deleted file mode 100644 index 4bfbd01ce45..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelConfigOverrides.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.spi.dto; - -public interface ModelConfigOverrides { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java deleted file mode 100644 index 59679c55aa6..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelInput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.spi.dto; - -public interface ModelInput { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java deleted file mode 100644 index e53d6481fa5..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/dto/ModelOutput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.spi.dto; - -public interface ModelOutput { - -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java deleted file mode 100644 index 02c5525b069..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelInputMetrics.java +++ /dev/null @@ -1,4 +0,0 @@ -package ai.timefold.solver.service.definition.spi.metrics; - -public interface ModelInputMetrics { -} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java deleted file mode 100644 index 8ec5503dc7f..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/spi/metrics/ModelOutputMetrics.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.service.definition.spi.metrics; - -public interface ModelOutputMetrics { - -} diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java index c3b3bfb0180..b6571e5303d 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java @@ -19,12 +19,12 @@ import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java index 7cf9a992784..cf4d9447656 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java @@ -10,7 +10,7 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java index 596bd9db42b..2a007a4da71 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java @@ -13,7 +13,7 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java index fd426cabb69..57c7b72bcce 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java @@ -8,9 +8,9 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import ai.timefold.solver.service.maps.api.model.Waypoints; import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java index 9f74649b473..4af4202a86c 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.maps.service.client.util; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; public class DummyModelInput implements ModelInput { } diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java index e00fe3ca23a..a02f73e823f 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.maps.service.client.util; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; public class DummyModelOutput implements ModelOutput { } diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java index 499b2e87743..bb2cb627834 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java @@ -1,11 +1,11 @@ package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java index 32ad24f2dd0..c20cb5fc2d4 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java @@ -10,10 +10,10 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; import ai.timefold.solver.service.maps.api.model.Location; import ai.timefold.solver.service.maps.service.integration.api.LocationsAwareSolverModel; diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java index ce8dd8d111b..7d6b529521b 100644 --- a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java @@ -4,7 +4,7 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.maps.api.model.Location; import ai.timefold.solver.service.maps.api.model.TransportType; diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java index 833bcefdbe7..f9ece8f15c0 100644 --- a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java @@ -2,7 +2,7 @@ import java.util.List; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.maps.api.model.Waypoints; public non-sealed interface WaypointsExtractor> extends WaypointsExtractorBase { diff --git a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java index 430a9dcce05..95706e3a5d0 100644 --- a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java +++ b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java @@ -11,15 +11,15 @@ import jakarta.ws.rs.core.Response; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import ai.timefold.solver.service.maps.api.model.Waypoints; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java index 37f3cd86db6..36584e719d0 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java @@ -6,8 +6,8 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelConvertorBuildItem; import ai.timefold.solver.service.quarkus.deployment.builditem.RestComponentsBuildItem; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java index 49187e8a87f..b04a6ff3d3a 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java @@ -16,14 +16,14 @@ import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.model.AbstractSimpleModel; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.AbstractSimpleModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java index 20340267a12..d7f93ff3244 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java @@ -4,8 +4,8 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java index 4f7958d0ac6..a1f0320189b 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java @@ -2,7 +2,7 @@ import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java index 4cedda31042..de9bb3f1516 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java @@ -2,7 +2,7 @@ import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java index b89fdb3cc42..74158767e8a 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java @@ -2,7 +2,7 @@ import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java index 202678fefd6..6c22793b7ba 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java @@ -2,7 +2,7 @@ import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java index e66fc14d15d..20fbc3c4f22 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java @@ -8,9 +8,9 @@ import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java index 58d4a4d0b2a..6aa0fed0c88 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java @@ -6,7 +6,7 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java index f17e8d0497b..231858a52ba 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java index 5929da4c0e6..b0633956c76 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java @@ -2,7 +2,7 @@ import java.time.Duration; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java index 1fee824067d..add4c5ef232 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java index 500186aeae6..993c11ea904 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java index 21112fa6f59..87661deed3e 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java @@ -6,7 +6,7 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java index a2459222297..a83cfb0f8d2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java index abef91d566c..d0b5acb007c 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java @@ -2,7 +2,7 @@ import ai.timefold.solver.service.definition.api.description.ConstraintReference; import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java index f5229652315..1e015888ad1 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java @@ -6,7 +6,7 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java index b84eb5c36ec..13c3ec4e92b 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java index 9767d808d50..8bc9ee140e2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java @@ -4,7 +4,7 @@ import java.time.Duration; import ai.timefold.solver.service.definition.api.metrics.DataFormat; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java index d3332a6c374..4ca6088e9ef 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java @@ -6,7 +6,7 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java index 535dee880a5..2629b30c616 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java index 43410a46b7d..0e6d34a75e8 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java index 764dac15991..ad1c3864686 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java index ee2b92e3d69..d1f7a257036 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java @@ -6,7 +6,7 @@ import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; @ApplicationScoped public class TestdataModelConvertor implements diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java index e122c576602..93d4be4cef2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; public class TestdataModelInput implements ModelInput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java index 033b00a5eb4..0f59d9d72d5 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java index 30e9bb8566e..afab3ac0810 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; public class TestdataModelOutput implements ModelOutput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java index 9a436f3e616..7871b64bd74 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.storage; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java index 35b75fac09b..49421b17f14 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java index a89fad5820d..d7230e4a655 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, ModelInput, ModelOutput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java index bf02c34bfc2..c4f333781ea 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java @@ -11,7 +11,7 @@ import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java index 5a2c21f06b8..dd94d30fab2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java index 26ec9cac23c..bf6ae304e69 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java @@ -4,7 +4,7 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; /** diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java index f9ac35f05de..c2c788e53bd 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java index 398f882be14..5629d6f3f86 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java index fa5ea61a420..63a33eb6581 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java index d350a20e535..073aaf10e86 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { } diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java index c4d9ad76217..3677ca4c882 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.it; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java index 0830a294dc8..dc3d38f784a 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java index aadad7a99c2..9cca3a8c01a 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java @@ -7,11 +7,11 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; import org.jspecify.annotations.NullMarked; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java index caab05b5eb1..5cbbb249684 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java index f3c9a261a78..e2e0050e165 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java index 46670550848..a45e5b3c7bc 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java index a1e11712d03..85f97de6a46 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java index d4711a785c8..f59159f1dde 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java @@ -12,8 +12,8 @@ import jakarta.ws.rs.ext.MessageBodyReader; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java index 0bee6e3a65c..7d06f25a998 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java @@ -12,8 +12,8 @@ import jakarta.ws.rs.ext.MessageBodyReader; import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index a11561016d4..c7fc4cab143 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -10,8 +10,8 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java index ff18addd263..d0d59350821 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java @@ -47,13 +47,13 @@ import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.events.SolverChannels; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java index 47faf89add4..43f670f6fc9 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleInputMetrics.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.testmodel; import ai.timefold.solver.service.definition.api.metrics.DataFormat; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java index 9f6fa5becd1..dba39408291 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleOutputMetrics.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.testmodel; import ai.timefold.solver.service.definition.api.metrics.DataFormat; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java index 156927aff8d..a311d38d9f4 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/EmployeeScheduleValidator.java @@ -3,7 +3,7 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; import ai.timefold.solver.service.testmodel.domain.EmployeeSchedule; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java index feaf61dd476..f47793320c7 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java @@ -8,11 +8,11 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; import ai.timefold.solver.service.testmodel.EmployeeScheduleInputMetrics; import ai.timefold.solver.service.testmodel.EmployeeScheduleOutputMetrics; diff --git a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java index 3bf86544644..d95d534a0a7 100644 --- a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java @@ -29,7 +29,7 @@ import jakarta.ws.rs.core.MediaType; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java index 999cb9bde6d..96c11cebf77 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java @@ -30,11 +30,11 @@ import ai.timefold.solver.service.definition.internal.events.SolveTerminateCommand; import ai.timefold.solver.service.definition.internal.events.SolverChannels; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.json.internal.patch.JsonPatch; import org.eclipse.microprofile.reactive.messaging.Channel; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index e20bcf12c13..8167fca364d 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -65,18 +65,18 @@ import ai.timefold.solver.service.definition.internal.platform.OnStartCommand; import ai.timefold.solver.service.definition.internal.solver.BestSolutionConsumerDecorator; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertor; -import ai.timefold.solver.service.definition.spi.conversion.ModelConvertorBase; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.spi.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.spi.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.spi.model.SolverModel; -import ai.timefold.solver.service.definition.spi.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertorBase; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.worker.impl.termination.TerminationService; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java index e37434eb044..1d9d8ba626f 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java @@ -12,7 +12,7 @@ import ai.timefold.solver.core.api.solver.change.ProblemChange; import ai.timefold.solver.core.api.solver.phase.PhaseId; import ai.timefold.solver.core.api.solver.termination.TerminationId; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; import org.jspecify.annotations.Nullable; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java index 6e8687079f3..ec8c7851e64 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java @@ -5,10 +5,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricher; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherBase; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherBase; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.api.SolverModel; import io.quarkus.arc.All; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java index 15da7362924..d2905d50600 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java @@ -6,10 +6,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirector; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorBase; -import ai.timefold.solver.service.definition.spi.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirector; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorBase; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.api.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java index c71554c839c..d3390ebb5b2 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java @@ -19,8 +19,8 @@ import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java index 0df9095684d..e2c21fe814d 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java @@ -15,8 +15,8 @@ import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; -import ai.timefold.solver.service.definition.spi.model.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java index 4dfc4075085..3b08594bc8b 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConfigOverrides.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.spi.dto.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java index 4798d5b5ca2..0ab53072793 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelConstraintJustification.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.spi.dto.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; public class TestdataModelConstraintJustification implements ModelConstraintJustification { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java index 327aa776946..afeb452956c 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInput.java @@ -2,7 +2,7 @@ import java.util.Objects; -import ai.timefold.solver.service.definition.spi.dto.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; public class TestdataModelInput implements ModelInput { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java index 89895b2557d..a47bf58c5b6 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelInputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.spi.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; public class TestdataModelInputMetrics implements ModelInputMetrics { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java index 7acbc326064..6c5dbaebc70 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutput.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.spi.dto.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; public class TestdataModelOutput implements ModelOutput { diff --git a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java index 4243c061f33..053a3c225e1 100644 --- a/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/testdata/TestdataModelOutputMetrics.java @@ -1,6 +1,6 @@ package ai.timefold.solver.service.worker.impl.testdata; -import ai.timefold.solver.service.definition.spi.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; public class TestdataModelOutputMetrics implements ModelOutputMetrics { From 151383aacbd89ec6deb2ba44267ce4066e29e793 Mon Sep 17 00:00:00 2001 From: rsynek Date: Wed, 11 Nov 2026 16:47:55 +0100 Subject: [PATCH 6/9] chore: provide migration recipe for changed packages --- .../preview/PreviewToLatestRecipe.java | 3 +- ...rviceDefinitionPackageMigrationRecipe.java | 104 +++++++++ ...eDefinitionPackageMigrationRecipeTest.java | 209 ++++++++++++++++++ 3 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java create mode 100644 tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java diff --git a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/PreviewToLatestRecipe.java b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/PreviewToLatestRecipe.java index 3ee3ba00692..405da80e6b1 100644 --- a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/PreviewToLatestRecipe.java +++ b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/PreviewToLatestRecipe.java @@ -26,7 +26,8 @@ public String getDescription() { @Override public List getRecipeList() { return List.of( - new NeighborhoodsMigrationRecipe()); + new NeighborhoodsMigrationRecipe(), + new ServiceDefinitionPackageMigrationRecipe()); } } diff --git a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java new file mode 100644 index 00000000000..46d7b7a1bf1 --- /dev/null +++ b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java @@ -0,0 +1,104 @@ +package ai.timefold.solver.migration.preview; + +import java.util.List; + +import ai.timefold.solver.migration.AbstractRecipe; + +import org.openrewrite.Recipe; +import org.openrewrite.java.ChangeType; + +/** + * Migrates the types of the Timefold Solver service definition module ({@code timefold-solver-service-definition}) + * to its new package structure. + *

+ * The flat {@code ai.timefold.solver.service.definition.api} package and its {@code configuration}, {@code data}, + * {@code domain}, {@code error}, {@code log}, {@code termination} and {@code validation} subpackages + * were reorganized: + *

    + *
  • REST payloads (DTOs) moved to {@code api.dto.*},
  • + *
  • model description types moved to {@code api.description},
  • + *
  • model conversion types moved to {@code api.conversion},
  • + *
  • demo data types became a preview API in {@code preview.api.demo},
  • + *
  • types that are not meant to be used by models moved to {@code internal.*}.
  • + *
+ * The removed {@code ai.timefold.solver.service.definition.api.UserModel} has no replacement and is not migrated. + */ +public class ServiceDefinitionPackageMigrationRecipe extends AbstractRecipe { + + private static final String API = "ai.timefold.solver.service.definition.api."; + private static final String NEW_PREVIEW_API = "ai.timefold.solver.service.definition.preview.api."; + private static final String INTERNAL = "ai.timefold.solver.service.definition.internal."; + + @Override + public String getDisplayName() { + return "Migrate the service definition to its new package structure"; + } + + @Override + public String getDescription() { + return "Migrate the types of the Timefold Solver service definition to their new packages."; + } + + @Override + public List getRecipeList() { + return List.of( + new ChangeType(API + "ModelConvertor", API + "conversion.ModelConvertor", true), + new ChangeType(API + "ModelConvertorBase", API + "conversion.ModelConvertorBase", true), + new ChangeType(API + "domain.ConstraintReference", API + "description.ConstraintReference", true), + new ChangeType(API + "ModelMaturityLevel", API + "description.ModelMaturityLevel", true), + new ChangeType(API + "domain.Configuration", API + "dto.dataset.Configuration", true), + new ChangeType(API + "configuration.MapsConfiguration", API + "dto.dataset.MapsConfiguration", true), + new ChangeType(API + "domain.Metadata", API + "dto.dataset.Metadata", true), + new ChangeType(API + "domain.ModelConfig", API + "dto.dataset.ModelConfig", true), + new ChangeType(API + "ModelConfigOverrides", API + "dto.dataset.ModelConfigOverrides", true), + new ChangeType(API + "ModelInput", API + "dto.dataset.ModelInput", true), + new ChangeType(API + "ModelOutput", API + "dto.dataset.ModelOutput", true), + new ChangeType(API + "domain.ModelRequest", API + "dto.dataset.ModelRequest", true), + new ChangeType(API + "domain.ModelResponse", API + "dto.dataset.ModelResponse", true), + new ChangeType(API + "configuration.ResourcesConfiguration", API + "dto.dataset.ResourcesConfiguration", true), + new ChangeType(API + "domain.RunConfiguration", API + "dto.dataset.RunConfiguration", true), + new ChangeType(API + "SolvingStatus", API + "dto.dataset.SolvingStatus", true), + new ChangeType(API + "error.ErrorInfo", API + "dto.error.ErrorInfo", true), + new ChangeType(API + "error.ValidationErrorInfo", API + "dto.error.ValidationErrorInfo", true), + new ChangeType(API + "log.LogInfo", API + "dto.log.LogInfo", true), + new ChangeType(API + "ModelInputPatch", API + "dto.patch.ModelInputPatch", true), + new ChangeType(API + "ModelInputPatchOp", API + "dto.patch.ModelInputPatchOp", true), + new ChangeType(API + "domain.ModelInputPatchRequest", API + "dto.patch.ModelInputPatchRequest", true), + new ChangeType(API + "ModelConstraintJustification", API + "dto.scoreanalysis.ModelConstraintJustification", + true), + new ChangeType(API + "domain.ScoreAnalysisConfig", API + "dto.scoreanalysis.ScoreAnalysisConfig", true), + new ChangeType(API + "domain.ScoreAnalysisRequest", API + "dto.scoreanalysis.ScoreAnalysisRequest", true), + new ChangeType(API + "termination.SolverTerminationConfig", API + "dto.solve.SolverTerminationConfig", true), + new ChangeType(API + "validation.AbstractIssue", API + "dto.validation.issue.AbstractIssue", true), + new ChangeType(API + "validation.Issue", API + "dto.validation.issue.Issue", true), + new ChangeType(API + "validation.IssueCode", API + "dto.validation.issue.IssueCode", true), + new ChangeType(API + "validation.IssueSeverity", API + "dto.validation.issue.IssueSeverity", true), + new ChangeType(API + "validation.IssueType", API + "dto.validation.issue.IssueType", true), + new ChangeType(API + "validation.metadata.IssueMessage", API + "dto.validation.issue.metadata.IssueMessage", + true), + new ChangeType(API + "validation.IssueMetadata", API + "dto.validation.issue.metadata.IssueMetadata", true), + new ChangeType(API + "validation.LegacyValidationResult", API + "dto.validation.LegacyValidationResult", true), + new ChangeType(API + "validation.dto.ValidationIssueTypes", API + "dto.validation.ValidationIssueTypes", true), + new ChangeType(API + "validation.dto.ValidationResult", API + "dto.validation.ValidationResult", true), + new ChangeType(API + "validation.ValidationStatus", API + "dto.validation.ValidationStatus", true), + new ChangeType(API + "domain.DataFormat", API + "metrics.DataFormat", true), + new ChangeType(API + "validation.ValidationBuilder", API + "validation.model.ValidationBuilder", true), + new ChangeType(API + "validation.Validated", API + "validation.schema.Validated", true), + new ChangeType(API + "configuration.ConfigurationProfile", INTERNAL + "configuration.ConfigurationProfile", + true), + new ChangeType(API + "ModelPostProcessor", INTERNAL + "dataset.ModelPostProcessor", true), + new ChangeType(API + "SolverInput", INTERNAL + "dataset.SolverInput", true), + new ChangeType(API + "Status", INTERNAL + "dataset.Status", true), + new ChangeType(API + "ModelDescriptor", INTERNAL + "descriptor.ModelDescriptor", true), + new ChangeType(API + "Resources", INTERNAL + "descriptor.Resources", true), + new ChangeType(API + "ResourceType", INTERNAL + "descriptor.ResourceType", true), + new ChangeType(API + "TrialConfig", INTERNAL + "descriptor.TrialConfig", true), + new ChangeType(API + "validation.Validator", INTERNAL + "validation.schema.Validator", true), + new ChangeType(API + "data.AbstractBasicDemoDataGenerator", + NEW_PREVIEW_API + "demo.AbstractBasicDemoDataGenerator", true), + new ChangeType(API + "data.DemoData", NEW_PREVIEW_API + "demo.DemoData", true), + new ChangeType(API + "data.DemoDataConfigEntry", NEW_PREVIEW_API + "demo.DemoDataConfigEntry", true), + new ChangeType(API + "data.DemoDataGenerator", NEW_PREVIEW_API + "demo.DemoDataGenerator", true), + new ChangeType(API + "data.DemoMetaData", NEW_PREVIEW_API + "demo.DemoMetaData", true)); + } +} diff --git a/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java b/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java new file mode 100644 index 00000000000..b747f8e1c12 --- /dev/null +++ b/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java @@ -0,0 +1,209 @@ +package ai.timefold.solver.migration.preview; + +import static org.openrewrite.java.Assertions.java; + +import java.util.List; + +import ai.timefold.solver.migration.AbstractRecipeTest; +import ai.timefold.solver.migration.NoWildCardImportStyle; + +import org.junit.jupiter.api.Test; +import org.openrewrite.java.JavaParser; +import org.openrewrite.test.RecipeSpec; +import org.openrewrite.test.TypeValidation; + +class ServiceDefinitionPackageMigrationRecipeTest extends AbstractRecipeTest { + + @Override + public void defaults(RecipeSpec spec) { + spec.recipes(new ServiceDefinitionPackageMigrationRecipe()) + .typeValidationOptions(TypeValidation.builder().allowMissingType(ignore -> true).build()) + .parser(JavaParser.fromJavaVersion() + .styles(List.of(new NoWildCardImportStyle())) + // We must add all old classes as stubs to the JavaParser classpath + .dependsOn( + "package ai.timefold.solver.service.definition.api; public interface ModelInput {}", + "package ai.timefold.solver.service.definition.api; public interface ModelOutput {}", + "package ai.timefold.solver.service.definition.api; public interface ModelConfigOverrides {}", + "package ai.timefold.solver.service.definition.api; public interface ModelConvertor {}", + "package ai.timefold.solver.service.definition.api; public interface ModelConstraintJustification {}", + "package ai.timefold.solver.service.definition.api; public enum ModelMaturityLevel { STABLE }", + "package ai.timefold.solver.service.definition.api; public enum SolvingStatus { SOLVING_ACTIVE }", + "package ai.timefold.solver.service.definition.api; public record ResourceType(String value) {}", + "package ai.timefold.solver.service.definition.api.domain; public record ModelRequest(Input_ modelInput) {}", + "package ai.timefold.solver.service.definition.api.domain; public record ConstraintReference(String id) {}", + "package ai.timefold.solver.service.definition.api.domain; public enum DataFormat { INTEGER }", + "package ai.timefold.solver.service.definition.api.configuration; public record MapsConfiguration(String provider) {}", + "package ai.timefold.solver.service.definition.api.termination; public record SolverTerminationConfig(String spentLimit) {}", + "package ai.timefold.solver.service.definition.api.validation; public interface Issue {}", + "package ai.timefold.solver.service.definition.api.validation; public abstract class AbstractIssue implements Issue {}", + "package ai.timefold.solver.service.definition.api.validation; public enum IssueSeverity { ERROR }", + "package ai.timefold.solver.service.definition.api.validation; public class ValidationBuilder {}", + "package ai.timefold.solver.service.definition.api.validation.dto; public record ValidationResult(String status) {}", + "package ai.timefold.solver.service.definition.api.validation.metadata; public record IssueMessage(String message) {}", + "package ai.timefold.solver.service.definition.api.data; public record DemoData(Object metaData, Object modelRequest) {}", + "package ai.timefold.solver.service.definition.api.data; public interface DemoDataGenerator {}")); + } + + @Test + void migrateModelTypes() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.service.definition.api.ModelConfigOverrides; + import ai.timefold.solver.service.definition.api.ModelConstraintJustification; + import ai.timefold.solver.service.definition.api.ModelConvertor; + import ai.timefold.solver.service.definition.api.ModelInput; + import ai.timefold.solver.service.definition.api.ModelMaturityLevel; + import ai.timefold.solver.service.definition.api.ModelOutput; + import ai.timefold.solver.service.definition.api.domain.ConstraintReference; + import ai.timefold.solver.service.definition.api.domain.DataFormat; + import ai.timefold.solver.service.definition.api.domain.ModelRequest; + + public class Test { + ModelInput input; + ModelOutput output; + ModelConvertor convertor; + ModelRequest request; + ModelConstraintJustification justification; + ConstraintReference constraintReference; + ModelMaturityLevel maturityLevel = ModelMaturityLevel.STABLE; + DataFormat dataFormat = DataFormat.INTEGER; + }""", + """ + package timefold; + + import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; + import ai.timefold.solver.service.definition.api.description.ConstraintReference; + import ai.timefold.solver.service.definition.api.description.ModelMaturityLevel; + import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; + import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; + import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; + import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; + import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; + import ai.timefold.solver.service.definition.api.metrics.DataFormat; + + public class Test { + ModelInput input; + ModelOutput output; + ModelConvertor convertor; + ModelRequest request; + ModelConstraintJustification justification; + ConstraintReference constraintReference; + ModelMaturityLevel maturityLevel = ModelMaturityLevel.STABLE; + DataFormat dataFormat = DataFormat.INTEGER; + }""")); + } + + @Test + void migrateConfigurationTypes() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.service.definition.api.SolvingStatus; + import ai.timefold.solver.service.definition.api.configuration.MapsConfiguration; + import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; + + public class Test { + MapsConfiguration mapsConfiguration; + SolverTerminationConfig terminationConfig; + SolvingStatus solvingStatus = SolvingStatus.SOLVING_ACTIVE; + }""", + """ + package timefold; + + import ai.timefold.solver.service.definition.api.dto.dataset.MapsConfiguration; + import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; + import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig; + + public class Test { + MapsConfiguration mapsConfiguration; + SolverTerminationConfig terminationConfig; + SolvingStatus solvingStatus = SolvingStatus.SOLVING_ACTIVE; + }""")); + } + + @Test + void migrateValidationTypes() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.service.definition.api.validation.AbstractIssue; + import ai.timefold.solver.service.definition.api.validation.IssueSeverity; + import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; + import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; + import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; + + public class TestIssue extends AbstractIssue { + IssueSeverity severity = IssueSeverity.ERROR; + IssueMessage message; + ValidationBuilder builder; + ValidationResult result; + }""", + """ + package timefold; + + import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; + import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; + import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; + import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; + import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; + + public class TestIssue extends AbstractIssue { + IssueSeverity severity = IssueSeverity.ERROR; + IssueMessage message; + ValidationBuilder builder; + ValidationResult result; + }""")); + } + + @Test + void migrateDemoDataToPreviewApi() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.service.definition.api.data.DemoData; + import ai.timefold.solver.service.definition.api.data.DemoDataGenerator; + + public class Test { + DemoDataGenerator generator; + DemoData demoData; + }""", + """ + package timefold; + + import ai.timefold.solver.service.definition.preview.api.demo.DemoData; + import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; + + public class Test { + DemoDataGenerator generator; + DemoData demoData; + }""")); + } + + @Test + void migrateInternalTypes() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.service.definition.api.ResourceType; + + public class Test { + ResourceType resourceType = new ResourceType("vehicle"); + }""", + """ + package timefold; + + import ai.timefold.solver.service.definition.internal.descriptor.ResourceType; + + public class Test { + ResourceType resourceType = new ResourceType("vehicle"); + }""")); + } + +} From 15f10f20d44f7bffe2005f76fad94466f7988694 Mon Sep 17 00:00:00 2001 From: rsynek Date: Thu, 12 Nov 2026 11:15:28 +0100 Subject: [PATCH 7/9] chore: restructure the enterprise definition packages --- service/definition/pom.xml | 4 +++ .../api/conversion/ModelConvertor.java | 6 ++-- .../definition/api/dto/dataset/Metadata.java | 2 +- .../dto/validation/ValidationIssueTypes.java | 1 + .../api/dto/validation/ValidationResult.java | 1 + .../api/dto/validation/issue/Issue.java | 1 + .../api/dto/validation/issue/IssueType.java | 2 +- .../issue/metadata/IssueMessage.java | 3 +- .../api/validation/ModelValidator.java | 2 +- .../validation/model/ValidationBuilder.java | 6 ++-- .../impl/solver/SolverWorkerFacade.java | 8 ++--- .../impl/validation/AbstractLegacyIssue.java | 2 +- .../impl/validation/JsonMappingError.java | 2 +- .../internal/dataset/ModelPostProcessor.java | 2 +- .../descriptor/ModelConfigParameter.java | 2 +- .../internal/events/BestSolutionEvent.java | 2 +- .../internal/events/DatasetComputedEvent.java | 2 +- .../events/FinalBestSolutionEvent.java | 2 +- .../internal/events/InitSolutionEvent.java | 2 +- .../internal/events/ItemStarted.java | 2 +- .../internal/events/SolverWorkerEvent.java | 2 +- .../internal/events/ValidationSummary.java | 4 +-- .../storage/AbstractStorageService.java | 14 ++++----- .../demo/AbstractBasicDemoDataGenerator.java | 2 +- .../definition/preview/api/demo/DemoData.java | 2 +- .../events/ValidationSummaryTest.java | 4 +-- .../AbstractStorageServiceRetryTest.java | 12 ++++---- .../SaveWaypointsPostProcessor.java | 2 +- .../client/util/DummyStorageService.java | 2 +- .../impl/AbstractMapsModelAPIResource.java | 4 +-- .../deployment/TimefoldModelsProcessor.java | 12 ++++---- .../rest/DefaultModelResourceTypeInfo.java | 2 +- .../rest/EnterpriseModelResourceTypeInfo.java | 2 +- ...terpriseModelResourceWithMapsTypeInfo.java | 2 +- .../rest/ModelResourceTypeInfo.java | 2 +- .../rest/ModelResourceWithMapsTypeInfo.java | 2 +- .../AbstractTrivialModelConvertorTest.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../constraintgroup/TestdataSolution.java | 2 +- .../TestdataSolution.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../modelconfigdefault/TestdataSolution.java | 2 +- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../TestdataSolution.java | 2 +- .../TestdataModelConfigOverrides.java | 2 +- .../TestdataModelConvertor.java | 2 +- .../modelconfigschema/TestdataSolution.java | 2 +- .../storage/TestdataModelConvertor.java | 2 +- .../testdata/storage/TestdataSolution.java | 2 +- .../uniqueresource/TestdataSolution.java | 2 +- .../validation/TestdataModelValidator.java | 4 +-- .../testdata/validation/TestdataSolution.java | 2 +- .../TestdataAbstractIssue.java | 2 +- .../TestdataModelValidator.java | 2 +- .../TestdataSolution.java | 2 +- .../deployment/it/TestdataSolution.java | 2 +- .../AbstractTrivialModelConvertor.java | 8 ++--- ...bstractModelRequestMessageBodyReaders.java | 2 +- ...coreAnalysisRequestMessageBodyReaders.java | 2 +- .../rest/impl/AbstractDemoDataResource.java | 4 +-- .../rest/impl/AbstractModelAPIResource.java | 18 ++++++------ .../impl/DefaultSolverWorkerFacade.java | 10 +++---- .../service/worker/impl/SolverWorker.java | 24 +++++++-------- .../SolverModelEnricherServiceImpl.java | 2 +- ...verModelEnrichmentDirectorServiceImpl.java | 2 +- .../worker/impl/log/LogsPostProcessor.java | 4 +-- .../monitoring/FlightRecorderProfiler.java | 4 +-- ...rviceDefinitionPackageMigrationRecipe.java | 21 +++++++++++++- ...eDefinitionPackageMigrationRecipeTest.java | 29 ++++++++++++++++++- 70 files changed, 176 insertions(+), 122 deletions(-) diff --git a/service/definition/pom.xml b/service/definition/pom.xml index 0331529d80c..ed2c93163b9 100644 --- a/service/definition/pom.xml +++ b/service/definition/pom.xml @@ -58,6 +58,10 @@ org.revapi revapi-maven-plugin + + + true + diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java index 05ad6a6c62b..5a969133a81 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/conversion/ModelConvertor.java @@ -3,13 +3,13 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java index ecc95b094e5..890eb124e1f 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/dataset/Metadata.java @@ -9,8 +9,8 @@ import java.util.UUID; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; -import ai.timefold.solver.service.definition.internal.dataset.Status; import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.internal.dataset.Status; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java index 82934cbcb6f..b34d565e164 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationIssueTypes.java @@ -3,6 +3,7 @@ import java.util.Collection; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; + import org.eclipse.microprofile.openapi.annotations.media.Schema; public record ValidationIssueTypes( diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java index ec75137f334..aba595ad4ba 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/ValidationResult.java @@ -3,6 +3,7 @@ import java.util.Collection; import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; + import org.eclipse.microprofile.openapi.annotations.media.Schema; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java index 8b539b5a91f..4d3d815275c 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/Issue.java @@ -3,6 +3,7 @@ import java.util.List; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; + import org.jspecify.annotations.NonNull; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java index 9049ae0b2d5..f8e04c181ce 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/IssueType.java @@ -3,8 +3,8 @@ import java.util.List; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; - import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; + import org.eclipse.microprofile.openapi.annotations.media.Schema; import io.quarkus.runtime.annotations.RecordableConstructor; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java index af3ac70fff2..a80b8c93e50 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/dto/validation/issue/metadata/IssueMessage.java @@ -3,7 +3,8 @@ import io.quarkus.runtime.annotations.RecordableConstructor; /** - * Represents a human-readable message related to an {@link ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType}. + * Represents a human-readable message related to an + * {@link ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType}. */ public record IssueMessage(String message) implements IssueMetadata { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java index 224b0267bf1..73e4fe46c79 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java @@ -1,9 +1,9 @@ package ai.timefold.solver.service.definition.api.validation; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; /** * Provides a complex validation of the model input before the solving, or other operation, starts. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java index 18855bf6c44..75e91ab3868 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/model/ValidationBuilder.java @@ -3,12 +3,12 @@ import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; -import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java index abbf88db57c..9821bba8166 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/solver/SolverWorkerFacade.java @@ -5,16 +5,16 @@ import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.rest.DatasetSelector; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.rest.DatasetSelector; /** * Facade used by the REST layer to interact with dataset storage and the solver worker, diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java index b7b84ed3ceb..143e438fb9d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java @@ -4,8 +4,8 @@ import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java index e51eb493af2..133f9a7b193 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java @@ -2,9 +2,9 @@ import java.util.List; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; /** diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java index 4d81f3050df..5d46e91df9d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/dataset/ModelPostProcessor.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.dataset; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; public interface ModelPostProcessor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java index 855b6a50b3c..f54e74d5652 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import org.eclipse.microprofile.openapi.models.media.Schema.SchemaType; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java index 8f36e98dffc..bbe8aaa9390 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * This event is sent when a new best solution is found during the solving process. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java index d089af951c1..4473943a1bc 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event sent when the outputs of a dataset are computed before solving. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java index 2a66d5a333f..b296997c75d 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Sent when the solver worker produces the final best solution upon termination conditions. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java index 1ff13cd02a8..464f22643d2 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Sent when a solver worker produces the first, initialized, solution. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java index 5629a5e3526..002b4332eaf 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java @@ -1,7 +1,7 @@ package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Event sent when the solver worker starts solving the dataset. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java index 69eb35a291a..18bb0ad4c38 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; /** * Base class for events produced by the SolverWorker. diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java index 2ee33dac002..7f581c742de 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ValidationSummary.java @@ -3,10 +3,10 @@ import java.util.HashMap; import java.util.Map; -import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; /** * A compact summary of a dataset validation, carrying the overall {@link ValidationStatus} and issue counts by diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java index 280b669db3a..46bde87f485 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java @@ -18,13 +18,19 @@ import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; @@ -33,12 +39,6 @@ import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java index 844504019ee..5088ef5e9ce 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/AbstractBasicDemoDataGenerator.java @@ -2,9 +2,9 @@ import java.util.List; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; /** * Default {@link DemoDataGenerator} implementation for models that provide only a single demo data set with ID diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java index 31c4afc7f4f..29655871d63 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/preview/api/demo/DemoData.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.definition.preview.api.demo; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; public record DemoData(DemoMetaData metaData, ModelRequest modelRequest) { diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java index 151b16f70b5..c5bf3c80e61 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/events/ValidationSummaryTest.java @@ -5,11 +5,11 @@ import java.util.List; import java.util.Map; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationStatus; import org.junit.jupiter.api.Test; diff --git a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java index b6571e5303d..80b172ff5a0 100644 --- a/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageServiceRetryTest.java @@ -14,17 +14,17 @@ import java.util.concurrent.atomic.AtomicInteger; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; -import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; -import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; -import ai.timefold.solver.service.definition.internal.error.ErrorCodes; -import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.impl.storage.CompressionUtils; +import ai.timefold.solver.service.definition.impl.storage.StorageObjectMapperWrapper; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java index 57c7b72bcce..983aa688153 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java @@ -8,9 +8,9 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; -import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import ai.timefold.solver.service.maps.api.model.Waypoints; import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java index bb2cb627834..af8d954a1ad 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java @@ -1,9 +1,9 @@ package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; diff --git a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java index 95706e3a5d0..804a82e50a3 100644 --- a/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java +++ b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java @@ -12,13 +12,13 @@ import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java index b04a6ff3d3a..7bc401feaf5 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java @@ -13,17 +13,17 @@ import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel; import ai.timefold.solver.quarkus.deployment.api.ConstraintMetaModelBuildItem; -import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; -import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; -import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; +import ai.timefold.solver.service.definition.api.AbstractSimpleModel; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.AbstractSimpleModel; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; +import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java index a1f0320189b..9dab3096ea5 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java index de9bb3f1516..b851e9d1f1d 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java index 74158767e8a..4ff5534e19b 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java index aee875423f5..b185c4137e5 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java @@ -12,7 +12,7 @@ public interface ModelResourceTypeInfo { DotName.createSimple("ai.timefold.solver.service.maps.service.integration.impl.WaypointsService"); DotName SCORE_ANALYSIS_FACADE_BASE = - DotName.createSimple("ai.timefold.solver.enterprise.service.definition.api.analysis.ScoreAnalysisFacadeBase"); + DotName.createSimple("ai.timefold.solver.enterprise.service.definition.api.scoreanalysis.ScoreAnalysisFacadeBase"); DotName modelResourceSuperClassName(); diff --git a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java index 6c22793b7ba..70f04501dbb 100644 --- a/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java +++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.rest; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem; import org.jboss.jandex.DotName; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java index 20fbc3c4f22..31d5551cfab 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertorTest.java @@ -7,10 +7,10 @@ import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java index 6aa0fed0c88..a5f25c817a2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java index 231858a52ba..ff06544ff22 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java index add4c5ef232..91ea4d452a0 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java index 87661deed3e..bc9e10cfa58 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java index a83cfb0f8d2..4c6730c67bf 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java index d0b5acb007c..0628ae566f0 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java @@ -1,8 +1,8 @@ package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference; import ai.timefold.solver.service.definition.api.description.ConstraintReference; -import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; public class TestdataModelConfigOverrides implements ModelConfigOverrides { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java index 1e015888ad1..3975126812b 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java index 13c3ec4e92b..cb4d41c543e 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java index 8bc9ee140e2..6c14eee96b9 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java @@ -3,8 +3,8 @@ import java.math.BigDecimal; import java.time.Duration; -import ai.timefold.solver.service.definition.api.metrics.DataFormat; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.metrics.DataFormat; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java index 4ca6088e9ef..d62bf69a0b8 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java index 2629b30c616..1af88b01df0 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelInputMetrics; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics; diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java index d1f7a257036..e9dbed2d94a 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java @@ -5,8 +5,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; @ApplicationScoped public class TestdataModelConvertor implements diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java index 49421b17f14..980dfd020df 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java index d7230e4a655..fe35c1851a4 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/uniqueresource/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution implements SolverModel, ModelInput, ModelOutput { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java index c4f333781ea..1e0d0e46972 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java @@ -7,11 +7,11 @@ import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMessage; -import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; @ApplicationScoped diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java index dd94d30fab2..25286a01d7c 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java index c416720ce97..54edac46ce2 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java @@ -4,8 +4,8 @@ import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; public abstract class TestdataAbstractIssue extends AbstractIssue { diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java index bf6ae304e69..046db2cfefc 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java @@ -3,8 +3,8 @@ import jakarta.enterprise.context.ApplicationScoped; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; /** diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java index c2c788e53bd..8e8e4fae493 100644 --- a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java +++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.SimpleScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; @PlanningSolution public class TestdataSolution diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java index dc3d38f784a..7fbacb932cf 100644 --- a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java @@ -9,9 +9,9 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java index 9cca3a8c01a..e35fcedc4be 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java @@ -4,14 +4,14 @@ import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import org.jspecify.annotations.NullMarked; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java index f59159f1dde..f6ffeda93de 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java index 7d06f25a998..0c4833bcabc 100644 --- a/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ScoreAnalysisRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index c7fc4cab143..6a6e767d221 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -7,11 +7,11 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.preview.api.demo.DemoDataGenerator; import ai.timefold.solver.service.definition.preview.api.demo.DemoMetaData; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; diff --git a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java index d0d59350821..de15220ad78 100644 --- a/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java @@ -25,6 +25,9 @@ import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; @@ -33,13 +36,17 @@ import ai.timefold.solver.service.definition.api.dto.error.ValidationErrorInfo; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; -import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; -import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue; +import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.api.rest.OperationId; import ai.timefold.solver.service.definition.api.rest.OperationOnPost; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.api.validation.schema.Validated; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; @@ -47,13 +54,6 @@ import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import ai.timefold.solver.service.definition.internal.events.SolverChannels; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.scoreanalysis.ModelConstraintJustification; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java index 96c11cebf77..f1f1b196a30 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/DefaultSolverWorkerFacade.java @@ -14,10 +14,15 @@ import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.api.dto.patch.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.definition.api.rest.DatasetSelector; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; import ai.timefold.solver.service.definition.impl.solver.SolverWorkerFacade; @@ -30,11 +35,6 @@ import ai.timefold.solver.service.definition.internal.events.SolveTerminateCommand; import ai.timefold.solver.service.definition.internal.events.SolverChannels; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import ai.timefold.solver.service.json.internal.patch.JsonPatch; import org.eclipse.microprofile.reactive.messaging.Channel; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index 8167fca364d..dc46e7e10ea 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -32,12 +32,24 @@ import ai.timefold.solver.core.api.solver.SolverStatus; import ai.timefold.solver.core.api.solver.event.EventProducerId; import ai.timefold.solver.core.api.solver.event.NewBestSolutionEvent; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; +import ai.timefold.solver.service.definition.api.conversion.ModelConvertorBase; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.validation.LegacyValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.definition.api.validation.model.ValidationBuilder; import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; @@ -65,18 +77,6 @@ import ai.timefold.solver.service.definition.internal.platform.OnStartCommand; import ai.timefold.solver.service.definition.internal.solver.BestSolutionConsumerDecorator; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.api.conversion.ModelConvertor; -import ai.timefold.solver.service.definition.api.conversion.ModelConvertorBase; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; -import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; -import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.validation.ModelValidator; import ai.timefold.solver.service.worker.impl.termination.TerminationService; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java index ec8c7851e64..6aa54eed080 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java @@ -5,10 +5,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherBase; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; -import ai.timefold.solver.service.definition.api.SolverModel; import io.quarkus.arc.All; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java index d2905d50600..fdc6a2f2e76 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java @@ -6,10 +6,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirector; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorBase; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.service.definition.api.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java index d3390ebb5b2..526e31fcce4 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java @@ -14,13 +14,13 @@ import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.api.dto.log.LogInfo; import ai.timefold.solver.service.definition.impl.log.LoggingConstants; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java index e2c21fe814d..8bbd425a510 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/FlightRecorderProfiler.java @@ -13,10 +13,10 @@ import jakarta.inject.Inject; import jakarta.interceptor.Interceptor; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; import ai.timefold.solver.service.definition.internal.dataset.ModelPostProcessor; import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; -import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java index 46d7b7a1bf1..ba5e027c98d 100644 --- a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java +++ b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java @@ -21,6 +21,10 @@ *
  • demo data types became a preview API in {@code preview.api.demo},
  • *
  • types that are not meant to be used by models moved to {@code internal.*}.
  • * + * The score analysis types of the enterprise service definition module + * ({@code ai.timefold.solver.enterprise.service.definition.api.analysis}) moved to {@code api.scoreanalysis} + * and, in case of DTOs, to {@code api.dto.scoreanalysis}. + *

    * The removed {@code ai.timefold.solver.service.definition.api.UserModel} has no replacement and is not migrated. */ public class ServiceDefinitionPackageMigrationRecipe extends AbstractRecipe { @@ -28,6 +32,7 @@ public class ServiceDefinitionPackageMigrationRecipe extends AbstractRecipe { private static final String API = "ai.timefold.solver.service.definition.api."; private static final String NEW_PREVIEW_API = "ai.timefold.solver.service.definition.preview.api."; private static final String INTERNAL = "ai.timefold.solver.service.definition.internal."; + private static final String ENTERPRISE_API = "ai.timefold.solver.enterprise.service.definition.api."; @Override public String getDisplayName() { @@ -99,6 +104,20 @@ public List getRecipeList() { new ChangeType(API + "data.DemoData", NEW_PREVIEW_API + "demo.DemoData", true), new ChangeType(API + "data.DemoDataConfigEntry", NEW_PREVIEW_API + "demo.DemoDataConfigEntry", true), new ChangeType(API + "data.DemoDataGenerator", NEW_PREVIEW_API + "demo.DemoDataGenerator", true), - new ChangeType(API + "data.DemoMetaData", NEW_PREVIEW_API + "demo.DemoMetaData", true)); + new ChangeType(API + "data.DemoMetaData", NEW_PREVIEW_API + "demo.DemoMetaData", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisConstraintDetail", + ENTERPRISE_API + "dto.scoreanalysis.ScoreAnalysisConstraintDetail", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisDetail", + ENTERPRISE_API + "dto.scoreanalysis.ScoreAnalysisDetail", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisMatchDetail", + ENTERPRISE_API + "dto.scoreanalysis.ScoreAnalysisMatchDetail", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisFacade", + ENTERPRISE_API + "scoreanalysis.ScoreAnalysisFacade", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisFacadeBase", + ENTERPRISE_API + "scoreanalysis.ScoreAnalysisFacadeBase", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisService", + ENTERPRISE_API + "scoreanalysis.ScoreAnalysisService", true), + new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisServiceBase", + ENTERPRISE_API + "scoreanalysis.ScoreAnalysisServiceBase", true)); } } diff --git a/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java b/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java index b747f8e1c12..7cdfc42cee5 100644 --- a/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java +++ b/tools/migration/src/test/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipeTest.java @@ -42,7 +42,9 @@ public void defaults(RecipeSpec spec) { "package ai.timefold.solver.service.definition.api.validation.dto; public record ValidationResult(String status) {}", "package ai.timefold.solver.service.definition.api.validation.metadata; public record IssueMessage(String message) {}", "package ai.timefold.solver.service.definition.api.data; public record DemoData(Object metaData, Object modelRequest) {}", - "package ai.timefold.solver.service.definition.api.data; public interface DemoDataGenerator {}")); + "package ai.timefold.solver.service.definition.api.data; public interface DemoDataGenerator {}", + "package ai.timefold.solver.enterprise.service.definition.api.analysis; public record ScoreAnalysisDetail(String score) {}", + "package ai.timefold.solver.enterprise.service.definition.api.analysis; public interface ScoreAnalysisService {}")); } @Test @@ -185,6 +187,31 @@ public class Test { }""")); } + @Test + void migrateEnterpriseScoreAnalysisTypes() { + rewriteRun(java( + """ + package timefold; + + import ai.timefold.solver.enterprise.service.definition.api.analysis.ScoreAnalysisDetail; + import ai.timefold.solver.enterprise.service.definition.api.analysis.ScoreAnalysisService; + + public class Test { + ScoreAnalysisService service; + ScoreAnalysisDetail detail; + }""", + """ + package timefold; + + import ai.timefold.solver.enterprise.service.definition.api.dto.scoreanalysis.ScoreAnalysisDetail; + import ai.timefold.solver.enterprise.service.definition.api.scoreanalysis.ScoreAnalysisService; + + public class Test { + ScoreAnalysisService service; + ScoreAnalysisDetail detail; + }""")); + } + @Test void migrateInternalTypes() { rewriteRun(java( From be0f7b6aa024d2274f4e29dcdab4d7ba5fc70ebe Mon Sep 17 00:00:00 2001 From: rsynek Date: Thu, 12 Nov 2026 14:19:33 +0100 Subject: [PATCH 8/9] chore: add missing recipe steps --- .../preview/ServiceDefinitionPackageMigrationRecipe.java | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java index ba5e027c98d..88f1c4edcef 100644 --- a/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java +++ b/tools/migration/src/main/java/ai/timefold/solver/migration/preview/ServiceDefinitionPackageMigrationRecipe.java @@ -105,6 +105,7 @@ public List getRecipeList() { new ChangeType(API + "data.DemoDataConfigEntry", NEW_PREVIEW_API + "demo.DemoDataConfigEntry", true), new ChangeType(API + "data.DemoDataGenerator", NEW_PREVIEW_API + "demo.DemoDataGenerator", true), new ChangeType(API + "data.DemoMetaData", NEW_PREVIEW_API + "demo.DemoMetaData", true), + new ChangeType(INTERNAL + "Headers", INTERNAL + "rest.Headers", true), new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisConstraintDetail", ENTERPRISE_API + "dto.scoreanalysis.ScoreAnalysisConstraintDetail", true), new ChangeType(ENTERPRISE_API + "analysis.ScoreAnalysisDetail", From b1a4266bed638e1d494c641d80371685530c942e Mon Sep 17 00:00:00 2001 From: rsynek Date: Thu, 12 Nov 2026 14:27:13 +0100 Subject: [PATCH 9/9] chore: fix formatting and test model openapi.json --- service/test-model/src/build/openapi.json | 7 +++---- .../service/testmodel/AbstractEmployeeScheduleIssue.java | 2 +- .../solver/service/testmodel/domain/EmployeeSchedule.java | 2 +- .../service/testmodel/EmployeeScheduleResourceTest.java | 8 ++++---- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/service/test-model/src/build/openapi.json b/service/test-model/src/build/openapi.json index 8a04ec002b6..f80e2075e6d 100644 --- a/service/test-model/src/build/openapi.json +++ b/service/test-model/src/build/openapi.json @@ -1592,7 +1592,7 @@ "type" : "object", "properties" : { "type" : { - "description" : "The type of the issue type detail.", + "description" : "The type of the issue metadata.", "type" : "string", "readOnly" : true }, @@ -1605,7 +1605,7 @@ "type" : "object", "properties" : { "type" : { - "description" : "The type of the issue type detail.", + "description" : "The type of the issue metadata.", "type" : "string", "readOnly" : true } @@ -2168,8 +2168,7 @@ "type" : "string" } } - }, - "additionalProperties" : false + } }, "ScoreAnalysisConfigModelConfigOverrides" : { "type" : "object", diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java index 24f905a5834..867004ad01f 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/AbstractEmployeeScheduleIssue.java @@ -4,8 +4,8 @@ import ai.timefold.solver.service.definition.api.dto.validation.issue.AbstractIssue; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; -import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; +import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java index f47793320c7..634d589a0f5 100644 --- a/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java +++ b/service/test-model/src/main/java/ai/timefold/solver/service/testmodel/domain/EmployeeSchedule.java @@ -8,9 +8,9 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; +import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput; import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput; -import ai.timefold.solver.service.definition.api.SolverModel; import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; import ai.timefold.solver.service.testmodel.EmployeeScheduleInputMetrics; diff --git a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java index d95d534a0a7..1a929767f65 100644 --- a/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/service/testmodel/EmployeeScheduleResourceTest.java @@ -30,18 +30,18 @@ import ai.timefold.solver.core.api.score.HardMediumSoftScore; import ai.timefold.solver.service.definition.api.SolverModel; -import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; import ai.timefold.solver.service.definition.api.dto.dataset.Configuration; import ai.timefold.solver.service.definition.api.dto.dataset.Metadata; import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest; import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse; import ai.timefold.solver.service.definition.api.dto.dataset.RunConfiguration; -import ai.timefold.solver.service.definition.api.rest.OperationOnPost; +import ai.timefold.solver.service.definition.api.dto.dataset.SolvingStatus; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueCode; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueSeverity; import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationIssueTypes; -import ai.timefold.solver.service.definition.api.dto.validation.ValidationResult; +import ai.timefold.solver.service.definition.api.rest.OperationOnPost; import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent;