This module contains APIs for optimization model development.
This module and any of its submodules are in a preview state and thus are subjects to changes.
diff --git a/model/quarkus/deployment/pom.xml b/service/quarkus/deployment/pom.xml
similarity index 86%
rename from model/quarkus/deployment/pom.xml
rename to service/quarkus/deployment/pom.xml
index bd960a5cf03..5f4449120c9 100644
--- a/model/quarkus/deployment/pom.xml
+++ b/service/quarkus/deployment/pom.xml
@@ -6,11 +6,11 @@
4.0.0
ai.timefold.solver
- timefold-solver-model-quarkus-parent
+ timefold-solver-service-quarkus-parent
${revision}
- timefold-solver-model-quarkus-deployment
- (Preview) Timefold Solver Model Quarkus Extension: Deployment
+ timefold-solver-service-quarkus-deployment
+ (Preview) Timefold Solver Service Quarkus Extension: Deployment
io.quarkus
@@ -22,19 +22,19 @@
ai.timefold.solver
- timefold-solver-model-definition
+ timefold-solver-service-definition
ai.timefold.solver
- timefold-solver-model-rest
+ timefold-solver-service-rest
ai.timefold.solver
- timefold-solver-model-jackson
+ timefold-solver-service-jackson
ai.timefold.solver
- timefold-solver-model-quarkus
+ timefold-solver-service-quarkus
ai.timefold.solver
@@ -88,7 +88,7 @@
ai.timefold.solver
- timefold-solver-model-worker
+ timefold-solver-service-worker
test
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/DefaultConfigProfileProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java
similarity index 85%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/DefaultConfigProfileProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileProcessor.java
index c5a7d275ea3..c09c1a2dfcd 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/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.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.definition.api.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_ID;
-import static ai.timefold.solver.model.definition.api.configuration.ConfigurationProfile.DEFAULT_CONFIGURATION_PROFILE_NAME;
+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 java.nio.file.Files;
import java.nio.file.Path;
@@ -9,15 +9,15 @@
import java.time.Duration;
import java.util.Map;
-import ai.timefold.solver.model.definition.api.configuration.ConfigurationProfile;
-import ai.timefold.solver.model.definition.api.configuration.MapsConfiguration;
-import ai.timefold.solver.model.definition.api.configuration.ResourcesConfiguration;
-import ai.timefold.solver.model.definition.api.domain.RunConfiguration;
-import ai.timefold.solver.model.definition.api.termination.SolverTerminationConfig;
-import ai.timefold.solver.model.jackson.impl.SdkBuildTimeObjectMapperFactory;
-import ai.timefold.solver.model.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelInfoBuildItem;
+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.jackson.impl.SdkBuildTimeObjectMapperFactory;
+import ai.timefold.solver.service.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelInfoBuildItem;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java
similarity index 98%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java
index 64d196d927e..1f363aa006b 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/GeneratedJaxRsResourceGizmoAdaptor.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
import java.io.StringWriter;
import java.io.Writer;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldLoggingConfigProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldLoggingConfigProcessor.java
similarity index 89%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldLoggingConfigProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldLoggingConfigProcessor.java
index d1148fcd4ef..993bb6c6383 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldLoggingConfigProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldLoggingConfigProcessor.java
@@ -1,6 +1,6 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import ai.timefold.solver.model.definition.impl.log.LoggingConstants;
+import ai.timefold.solver.service.definition.impl.log.LoggingConstants;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
@@ -25,7 +25,7 @@ void confiugreSolverLogging(CombinedIndexBuildItem combinedIndex,
runtimeConfigBuildProducer.produce(
new RunTimeConfigurationDefaultBuildItem("quarkus.log.category.\"ai.timefold.solver\".handlers", "solver"));
runtimeConfigBuildProducer.produce(
- new RunTimeConfigurationDefaultBuildItem("quarkus.log.category.\"ai.timefold.solver.model\".handlers",
+ new RunTimeConfigurationDefaultBuildItem("quarkus.log.category.\"ai.timefold.solver.service\".handlers",
"solver"));
}
}
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelConvertorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java
similarity index 93%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelConvertorProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java
index a5a88d3bcfd..fa253384f21 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelConvertorProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelConvertorProcessor.java
@@ -1,18 +1,18 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils.excludeType;
+import static ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils.excludeType;
import java.util.Objects;
import jakarta.enterprise.context.ApplicationScoped;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.ModelInput;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelConvertorBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.RestComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.defaults.AbstractTrivialModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.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;
+import ai.timefold.solver.service.quarkus.deployment.defaults.AbstractTrivialModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java
similarity index 96%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java
index 4e6faa02c35..8a8ad4e3382 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelDescriptorProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelDescriptorProcessor.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.definition.api.rest.OperationId.POST_OPERATIONS_ID_PATTERN;
-import static ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils.excludeType;
+import static ai.timefold.solver.service.definition.api.rest.OperationId.POST_OPERATIONS_ID_PATTERN;
+import static ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils.excludeType;
import java.io.IOException;
import java.io.UncheckedIOException;
@@ -34,41 +34,41 @@
import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel;
import ai.timefold.solver.core.api.solver.SolverFactory;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.definition.api.ModelMaturityLevel;
-import ai.timefold.solver.model.definition.api.ResourceType;
-import ai.timefold.solver.model.definition.api.Resources;
-import ai.timefold.solver.model.definition.api.TrialConfig;
-import ai.timefold.solver.model.definition.api.data.AbstractBasicDemoDataGenerator;
-import ai.timefold.solver.model.definition.api.data.DemoData;
-import ai.timefold.solver.model.definition.api.data.DemoDataGenerator;
-import ai.timefold.solver.model.definition.api.description.ConstraintGroupInfo;
-import ai.timefold.solver.model.definition.api.description.ConstraintInfo;
-import ai.timefold.solver.model.definition.api.domain.ConstraintReference;
-import ai.timefold.solver.model.definition.api.domain.DataFormat;
-import ai.timefold.solver.model.definition.api.domain.ModelRequest;
-import ai.timefold.solver.model.definition.api.rest.OperationId;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintGroupDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.DocumentationDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.DocumentationSupport;
-import ai.timefold.solver.model.definition.internal.descriptor.InputMetricDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelBuildInfo;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigParameter;
-import ai.timefold.solver.model.definition.internal.descriptor.OutputMetricDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind;
-import ai.timefold.solver.model.definition.internal.descriptor.UISupport;
-import ai.timefold.solver.model.jackson.impl.SdkBuildTimeObjectMapperFactory;
-import ai.timefold.solver.model.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelArchiveBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelInfoBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.RestComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.SingleOpenApiDocumentBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.descriptor.DefaultConstraintGroupDescriptorFactory;
-import ai.timefold.solver.model.quarkus.deployment.openapi.SchemaPostProcessor;
-import ai.timefold.solver.model.quarkus.deployment.openapi.SchemaUtils;
+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.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;
+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.rest.OperationId;
+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.DocumentationDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.DocumentationSupport;
+import ai.timefold.solver.service.definition.internal.descriptor.InputMetricDescriptor;
+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.OutputMetricDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind;
+import ai.timefold.solver.service.definition.internal.descriptor.UISupport;
+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;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelInfoBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.RestComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.SingleOpenApiDocumentBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.descriptor.DefaultConstraintGroupDescriptorFactory;
+import ai.timefold.solver.service.quarkus.deployment.openapi.SchemaPostProcessor;
+import ai.timefold.solver.service.quarkus.deployment.openapi.SchemaUtils;
import org.apache.commons.lang3.exception.UncheckedException;
import org.eclipse.microprofile.config.Config;
@@ -129,7 +129,7 @@ class TimefoldModelDescriptorProcessor {
private static final DotName DEMO_DATA_GENERATOR = DotName.createSimple(DemoDataGenerator.class.getName());
private static final DotName ABSTRACT_DEMO_DATA_GENERATOR = DotName.createSimple(AbstractBasicDemoDataGenerator.class);
private static final DotName WITH_MAPS_FACADE =
- DotName.createSimple("ai.timefold.solver.enterprise.model.maps.facade.WithMapsFacadeMarker");
+ DotName.createSimple("ai.timefold.solver.enterprise.service.maps.facade.WithMapsFacadeMarker");
private static final String MODELS_PATH_PREFIX = "/api/models/";
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelsProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java
similarity index 91%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelsProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java
index 3bd2783b300..5c4ee77af2b 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldModelsProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldModelsProcessor.java
@@ -1,6 +1,6 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils.excludeType;
+import static ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils.excludeType;
import java.util.Collection;
import java.util.List;
@@ -12,20 +12,20 @@
import ai.timefold.solver.core.api.domain.solution.PlanningSolution;
import ai.timefold.solver.core.api.score.Score;
import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel;
-import ai.timefold.solver.model.definition.api.AbstractSimpleModel;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
-import ai.timefold.solver.model.definition.api.ModelConstraintJustification;
-import ai.timefold.solver.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
-import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics;
-import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics;
-import ai.timefold.solver.model.definition.api.validation.AbstractIssue;
-import ai.timefold.solver.model.definition.impl.validation.AbstractLegacyIssue;
-import ai.timefold.solver.model.definition.impl.validation.JsonMappingError;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils;
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.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;
import org.jboss.jandex.AnnotationInstance;
import org.jboss.jandex.AnnotationTarget;
@@ -50,7 +50,7 @@ class TimefoldModelsProcessor {
private static final String FEATURE = "platform-models";
private static final DotName ENTERPRISE_FEATURES =
- DotName.createSimple("ai.timefold.solver.enterprise.model.definition.impl.EnterpriseFeatures");
+ DotName.createSimple("ai.timefold.solver.enterprise.service.definition.impl.EnterpriseFeatures");
private static final DotName MODEL_INPUT = DotName.createSimple(ModelInput.class.getName());
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldRESTProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java
similarity index 88%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldRESTProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java
index 8c9d0a0bd0b..0af0898f232 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldRESTProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldRESTProcessor.java
@@ -1,6 +1,6 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils.excludeType;
+import static ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils.excludeType;
import static org.objectweb.asm.Opcodes.ACC_PROTECTED;
import java.util.List;
@@ -13,25 +13,25 @@
import jakarta.ws.rs.ext.MessageBodyReader;
import jakarta.ws.rs.ext.Provider;
-import ai.timefold.solver.model.definition.api.data.AbstractBasicDemoDataGenerator;
-import ai.timefold.solver.model.definition.api.data.DemoDataGenerator;
-import ai.timefold.solver.model.definition.api.domain.Configuration;
-import ai.timefold.solver.model.definition.api.domain.ModelRequest;
-import ai.timefold.solver.model.definition.api.domain.ScoreAnalysisRequest;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelConvertorBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.RestComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.rest.DefaultModelResourceTypeInfo;
-import ai.timefold.solver.model.quarkus.deployment.rest.EnterpriseModelResourceTypeInfo;
-import ai.timefold.solver.model.quarkus.deployment.rest.EnterpriseModelResourceWithMapsTypeInfo;
-import ai.timefold.solver.model.quarkus.deployment.rest.ModelResourceBeanGenerator;
-import ai.timefold.solver.model.quarkus.deployment.rest.ModelResourceTypeInfo;
-import ai.timefold.solver.model.quarkus.deployment.rest.ModelResourceWithMapsTypeInfo;
-import ai.timefold.solver.model.quarkus.deployment.rest.io.AbstractModelConfigMessageBodyReaders;
-import ai.timefold.solver.model.quarkus.deployment.rest.io.AbstractModelRequestMessageBodyReaders;
-import ai.timefold.solver.model.quarkus.deployment.rest.io.AbstractScoreAnalysisRequestMessageBodyReaders;
-import ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils;
-import ai.timefold.solver.model.rest.api.ModelRest;
+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.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelConvertorBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.builditem.RestComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.rest.DefaultModelResourceTypeInfo;
+import ai.timefold.solver.service.quarkus.deployment.rest.EnterpriseModelResourceTypeInfo;
+import ai.timefold.solver.service.quarkus.deployment.rest.EnterpriseModelResourceWithMapsTypeInfo;
+import ai.timefold.solver.service.quarkus.deployment.rest.ModelResourceBeanGenerator;
+import ai.timefold.solver.service.quarkus.deployment.rest.ModelResourceTypeInfo;
+import ai.timefold.solver.service.quarkus.deployment.rest.ModelResourceWithMapsTypeInfo;
+import ai.timefold.solver.service.quarkus.deployment.rest.io.AbstractModelConfigMessageBodyReaders;
+import ai.timefold.solver.service.quarkus.deployment.rest.io.AbstractModelRequestMessageBodyReaders;
+import ai.timefold.solver.service.quarkus.deployment.rest.io.AbstractScoreAnalysisRequestMessageBodyReaders;
+import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.jboss.jandex.AnnotationInstance;
import org.jboss.jandex.AnnotationTarget.Kind;
@@ -62,13 +62,13 @@ class TimefoldRESTProcessor {
private static final DotName REST_API = DotName.createSimple(ModelRest.class.getName());
private static final DotName ABSTRACT_DEMO_DATA_RESOURCE =
- DotName.createSimple("ai.timefold.solver.model.rest.impl.AbstractDemoDataResource");
+ DotName.createSimple("ai.timefold.solver.service.rest.impl.AbstractDemoDataResource");
private static final DotName DEMO_DATA_GENERATOR = DotName.createSimple(DemoDataGenerator.class);
private static final DotName ABSTRACT_DEMO_DATA_GENERATOR =
DotName.createSimple(AbstractBasicDemoDataGenerator.class);
private static final DotName WAYPOINT_EXTRACTOR =
- DotName.createSimple("ai.timefold.solver.model.maps.service.integration.api.WaypointsExtractor");
+ DotName.createSimple("ai.timefold.solver.service.maps.service.integration.api.WaypointsExtractor");
private static final String REST_GENERATED_PACKAGE = "ai.timefold.platform.generated.rest.";
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldStorageProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java
similarity index 94%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldStorageProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java
index becdbff2d1b..9427aaed5d6 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldStorageProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldStorageProcessor.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
import static org.objectweb.asm.Opcodes.ACC_PROTECTED;
@@ -12,12 +12,12 @@
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.domain.Configuration;
-import ai.timefold.solver.model.definition.impl.storage.inmemory.InMemoryStorage;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.definition.internal.storage.Storage;
-import ai.timefold.solver.model.definition.internal.storage.SupportedStorages;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.api.domain.Configuration;
+import ai.timefold.solver.service.definition.impl.storage.inmemory.InMemoryStorage;
+import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService;
+import ai.timefold.solver.service.definition.internal.storage.Storage;
+import ai.timefold.solver.service.definition.internal.storage.SupportedStorages;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.jboss.jandex.AnnotationInstance;
@@ -52,15 +52,17 @@ class TimefoldStorageProcessor {
public static final DotName STORAGE_SERVICE = DotName.createSimple(AbstractStorageService.class.getName());
public static final DotName ENTERPRISE_STORAGE_SERVICE =
- DotName.createSimple("ai.timefold.solver.enterprise.model.storage.core.internal.AbstractStorageEnterpriseService");
+ DotName.createSimple(
+ "ai.timefold.solver.enterprise.service.storage.core.internal.AbstractStorageEnterpriseService");
private static final String GENERATED_PACKAGE = "ai.timefold.platform.generated.storage.";
/**
- * Generating concrete implementation of ai.timefold.solver.model.api.storage.Storage based on
+ * Generating concrete implementation of ai.timefold.solver.service.api.storage.Storage based on
* project dependency with underlying object store such as S3, Google Cloud Storage or Azure BlobStore.
*
- * Looks up what implements the ai.timefold.solver.model.api.ModelOutput and uses it as the actual type of data
+ * Looks up what implements the ai.timefold.solver.service.api.ModelOutput and uses it as the actual type of
+ * data
* to be stored.
*
* @param combinedIndex - index that is used to find types implementing interfaces
@@ -205,7 +207,7 @@ void generateStorageImpl(CombinedIndexBuildItem combinedIndex,
/**
* Generate concrete implementation of
- * ai.timefold.solver.model.api.storage.AbstractStorageService
+ * ai.timefold.solver.service.api.storage.AbstractStorageService
* with model's specific model types of
*
*
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldValidatorProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java
similarity index 95%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldValidatorProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java
index 9f7d76e4ef1..2c08ab11199 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/TimefoldValidatorProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/TimefoldValidatorProcessor.java
@@ -1,13 +1,13 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
import java.util.Objects;
import jakarta.enterprise.context.ApplicationScoped;
-import ai.timefold.solver.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils;
+import ai.timefold.solver.service.definition.api.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;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java
similarity index 90%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java
index 4614403f335..b35c5460dd2 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/AdditionalDescriptorFilesBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import java.nio.file.Path;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelArchiveBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelArchiveBuildItem.java
similarity index 85%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelArchiveBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelArchiveBuildItem.java
index 4604b97a3ef..cd91a9253e9 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelArchiveBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelArchiveBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import java.nio.file.Path;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelComponentsBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelComponentsBuildItem.java
similarity index 98%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelComponentsBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelComponentsBuildItem.java
index 8e91f0b5fea..9dd238dc079 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelComponentsBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelComponentsBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import ai.timefold.solver.core.api.score.stream.ConstraintMetaModel;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelConvertorBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelConvertorBuildItem.java
similarity index 86%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelConvertorBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelConvertorBuildItem.java
index 518f7af11e8..7b29d9ae1e9 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelConvertorBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelConvertorBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import org.jboss.jandex.DotName;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelInfoBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelInfoBuildItem.java
similarity index 87%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelInfoBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelInfoBuildItem.java
index 659614706f9..4f03073db05 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/ModelInfoBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/ModelInfoBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import io.quarkus.builder.item.SimpleBuildItem;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/RestComponentsBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/RestComponentsBuildItem.java
similarity index 87%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/RestComponentsBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/RestComponentsBuildItem.java
index 8873618862f..fe4518d8493 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/RestComponentsBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/RestComponentsBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import java.util.Optional;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java
similarity index 96%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java
index 0b9fcd55225..20cb582ac03 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/builditem/SingleOpenApiDocumentBuildItem.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.builditem;
+package ai.timefold.solver.service.quarkus.deployment.builditem;
import java.util.List;
import java.util.Objects;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/config/TimefoldBuildConfigOverrides.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/config/TimefoldBuildConfigOverrides.java
similarity index 95%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/config/TimefoldBuildConfigOverrides.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/config/TimefoldBuildConfigOverrides.java
index 7e6a19c446b..c0ac7c39e0f 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/config/TimefoldBuildConfigOverrides.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/config/TimefoldBuildConfigOverrides.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.config;
+package ai.timefold.solver.service.quarkus.deployment.config;
import java.io.File;
import java.io.FileInputStream;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java
similarity index 77%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java
index c56d1e131d7..43cd0fa0c18 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/descriptor/DefaultConstraintGroupDescriptorFactory.java
@@ -1,9 +1,9 @@
-package ai.timefold.solver.model.quarkus.deployment.descriptor;
+package ai.timefold.solver.service.quarkus.deployment.descriptor;
import java.util.List;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintGroupDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.ConstraintDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor;
/**
* Creates a default {@link ConstraintGroupDescriptor} that contains all constraints with no group defined.
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessor.java
similarity index 94%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessor.java
index 47e53a4fbda..3074eccb120 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessor.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.openapi;
+package ai.timefold.solver.service.quarkus.deployment.openapi;
import java.util.List;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaUtils.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaUtils.java
similarity index 99%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaUtils.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaUtils.java
index aa7213e9126..bc669a21229 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaUtils.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaUtils.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.openapi;
+package ai.timefold.solver.service.quarkus.deployment.openapi;
import java.time.Duration;
import java.util.Collection;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java
similarity index 81%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java
index df07dd95140..54d14967ea5 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/DefaultModelResourceTypeInfo.java
@@ -1,16 +1,16 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import java.util.Map;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.definition.internal.events.DatasetCreatedEvent;
-import ai.timefold.solver.model.definition.internal.events.DatasetValidateComputeCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveStartCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveTerminateCommand;
-import ai.timefold.solver.model.definition.internal.events.SolverChannels;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.api.validation.ModelValidator;
+import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog;
+import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent;
+import ai.timefold.solver.service.definition.internal.events.DatasetValidateComputeCommand;
+import ai.timefold.solver.service.definition.internal.events.SolveStartCommand;
+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.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.jboss.jandex.DotName;
@@ -24,7 +24,7 @@ public class DefaultModelResourceTypeInfo implements ModelResourceTypeInfo {
@Override
public DotName modelResourceSuperClassName() {
- return DotName.createSimple("ai.timefold.solver.model.rest.impl.AbstractModelAPIResource");
+ return DotName.createSimple("ai.timefold.solver.service.rest.impl.AbstractModelAPIResource");
}
@Override
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java
similarity index 83%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java
index 1634c2685cb..0b672c8641c 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceTypeInfo.java
@@ -1,16 +1,16 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import java.util.Map;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.definition.internal.events.DatasetCreatedEvent;
-import ai.timefold.solver.model.definition.internal.events.DatasetValidateComputeCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveStartCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveTerminateCommand;
-import ai.timefold.solver.model.definition.internal.events.SolverChannels;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.api.validation.ModelValidator;
+import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog;
+import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent;
+import ai.timefold.solver.service.definition.internal.events.DatasetValidateComputeCommand;
+import ai.timefold.solver.service.definition.internal.events.SolveStartCommand;
+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.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.jboss.jandex.DotName;
@@ -24,7 +24,7 @@ public class EnterpriseModelResourceTypeInfo implements ModelResourceTypeInfo {
@Override
public DotName modelResourceSuperClassName() {
- return DotName.createSimple("ai.timefold.solver.enterprise.model.rest.impl.AbstractModelAPIEnterpriseResource");
+ return DotName.createSimple("ai.timefold.solver.enterprise.service.rest.impl.AbstractModelAPIEnterpriseResource");
}
@Override
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java
similarity index 82%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java
index 5d51cf2dc9f..1f813015e5a 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/EnterpriseModelResourceWithMapsTypeInfo.java
@@ -1,16 +1,16 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import java.util.Map;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.definition.internal.events.DatasetCreatedEvent;
-import ai.timefold.solver.model.definition.internal.events.DatasetValidateComputeCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveStartCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveTerminateCommand;
-import ai.timefold.solver.model.definition.internal.events.SolverChannels;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.api.validation.ModelValidator;
+import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog;
+import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent;
+import ai.timefold.solver.service.definition.internal.events.DatasetValidateComputeCommand;
+import ai.timefold.solver.service.definition.internal.events.SolveStartCommand;
+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.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.jboss.jandex.DotName;
@@ -25,7 +25,7 @@ public class EnterpriseModelResourceWithMapsTypeInfo implements ModelResourceTyp
@Override
public DotName modelResourceSuperClassName() {
return DotName
- .createSimple("ai.timefold.solver.enterprise.model.maps.rest.impl.AbstractMapsModelAPIEnterpriseResource");
+ .createSimple("ai.timefold.solver.enterprise.service.maps.rest.impl.AbstractMapsModelAPIEnterpriseResource");
}
@Override
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceBeanGenerator.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceBeanGenerator.java
similarity index 96%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceBeanGenerator.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceBeanGenerator.java
index f4a463cf719..347549f88e1 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceBeanGenerator.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceBeanGenerator.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import static org.objectweb.asm.Opcodes.ACC_PROTECTED;
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
@@ -7,9 +7,9 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.quarkus.deployment.GeneratedJaxRsResourceGizmoAdaptor;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.util.ProcessorUtils;
+import ai.timefold.solver.service.quarkus.deployment.GeneratedJaxRsResourceGizmoAdaptor;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.quarkus.deployment.util.ProcessorUtils;
import org.jboss.jandex.AnnotationInstance;
import org.jboss.jandex.AnnotationTarget;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java
similarity index 85%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceTypeInfo.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java
index daa9f9aa0bc..9f3aeb4fb76 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceTypeInfo.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceTypeInfo.java
@@ -1,10 +1,10 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import java.util.Map;
import java.util.function.Consumer;
-import ai.timefold.solver.model.definition.internal.events.SolverChannels;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.internal.events.SolverChannels;
+import ai.timefold.solver.service.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.jboss.jandex.DotName;
@@ -18,10 +18,11 @@ public interface ModelResourceTypeInfo {
String MUTINY_EMITTER_CLASS_NAME = "io.smallrye.reactive.messaging.MutinyEmitter";
- DotName WAYPOINT_SERVICE = DotName.createSimple("ai.timefold.solver.model.maps.service.integration.impl.WaypointsService");
+ DotName WAYPOINT_SERVICE =
+ DotName.createSimple("ai.timefold.solver.service.maps.service.integration.impl.WaypointsService");
DotName SCORE_ANALYSIS_FACADE_BASE =
- DotName.createSimple("ai.timefold.solver.enterprise.model.definition.api.analysis.ScoreAnalysisFacadeBase");
+ DotName.createSimple("ai.timefold.solver.enterprise.service.definition.api.analysis.ScoreAnalysisFacadeBase");
String CHANNEL_CLASS_NAME = "org.eclipse.microprofile.reactive.messaging.Channel";
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java
similarity index 82%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java
index 5e6b95bb06b..7a0f7b7b750 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/ModelResourceWithMapsTypeInfo.java
@@ -1,16 +1,16 @@
-package ai.timefold.solver.model.quarkus.deployment.rest;
+package ai.timefold.solver.service.quarkus.deployment.rest;
import java.util.Map;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.definition.internal.events.DatasetCreatedEvent;
-import ai.timefold.solver.model.definition.internal.events.DatasetValidateComputeCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveStartCommand;
-import ai.timefold.solver.model.definition.internal.events.SolveTerminateCommand;
-import ai.timefold.solver.model.definition.internal.events.SolverChannels;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelComponentsBuildItem;
+import ai.timefold.solver.service.definition.api.validation.ModelValidator;
+import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog;
+import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent;
+import ai.timefold.solver.service.definition.internal.events.DatasetValidateComputeCommand;
+import ai.timefold.solver.service.definition.internal.events.SolveStartCommand;
+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.quarkus.deployment.builditem.ModelComponentsBuildItem;
import org.jboss.jandex.DotName;
@@ -23,7 +23,7 @@ public class ModelResourceWithMapsTypeInfo implements ModelResourceTypeInfo {
@Override
public DotName modelResourceSuperClassName() {
- return DotName.createSimple("ai.timefold.solver.model.maps.service.rest.impl.AbstractMapsModelAPIResource");
+ return DotName.createSimple("ai.timefold.solver.service.maps.service.rest.impl.AbstractMapsModelAPIResource");
}
@Override
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/util/ProcessorUtils.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/util/ProcessorUtils.java
similarity index 98%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/util/ProcessorUtils.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/util/ProcessorUtils.java
index 6dd9b0e6898..ed1c298cd3f 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/util/ProcessorUtils.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/util/ProcessorUtils.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.util;
+package ai.timefold.solver.service.quarkus.deployment.util;
import java.util.Collection;
import java.util.HashMap;
@@ -23,7 +23,7 @@
public class ProcessorUtils {
- public static final String DEFAULT_TYPES_PACKAGE = "ai.timefold.solver.model.quarkus.deployment.defaults";
+ public static final String DEFAULT_TYPES_PACKAGE = "ai.timefold.solver.service.quarkus.deployment.defaults";
/**
* Finds a single direct subclass of a parent class excluding given subclasses.
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java
similarity index 74%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java
index 360f24dd6eb..1086a2dc47b 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/DiscoveredIssueTypesBuildItem.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.validation;
+package ai.timefold.solver.service.quarkus.deployment.validation;
import java.util.List;
-import ai.timefold.solver.model.definition.api.validation.IssueType;
+import ai.timefold.solver.service.definition.api.validation.IssueType;
import io.quarkus.builder.item.SimpleBuildItem;
diff --git a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java
similarity index 90%
rename from model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java
rename to service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java
index 26eb8143b90..f520ed63030 100644
--- a/model/quarkus/deployment/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java
+++ b/service/quarkus/deployment/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogProcessor.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.validation;
+package ai.timefold.solver.service.quarkus.deployment.validation;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -11,13 +11,13 @@
import jakarta.enterprise.context.ApplicationScoped;
-import ai.timefold.solver.model.definition.api.validation.AbstractIssue;
-import ai.timefold.solver.model.definition.api.validation.IssueCode;
-import ai.timefold.solver.model.definition.api.validation.IssueType;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.jackson.impl.SdkBuildTimeObjectMapperFactory;
-import ai.timefold.solver.model.quarkus.deployment.builditem.AdditionalDescriptorFilesBuildItem;
-import ai.timefold.solver.model.quarkus.deployment.builditem.ModelInfoBuildItem;
+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.impl.validation.ValidationIssueTypeCatalog;
+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.ModelInfoBuildItem;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
@@ -55,7 +55,7 @@ public DiscoveredIssueTypesBuildItem discoverIssueTypes(
continue;
}
if (issueClassInfo.name().packagePrefixName()
- .startsWith(DotName.createSimple("ai.timefold.solver.model.definition"))) {
+ .startsWith(DotName.createSimple("ai.timefold.solver.service.definition"))) {
continue; // Exclude SDK internal errors
}
if (!issueClassInfo.hasNoArgsConstructor()) {
diff --git a/model/quarkus/deployment/src/main/resources/META-INF/openapi.yaml b/service/quarkus/deployment/src/main/resources/META-INF/openapi.yaml
similarity index 100%
rename from model/quarkus/deployment/src/main/resources/META-INF/openapi.yaml
rename to service/quarkus/deployment/src/main/resources/META-INF/openapi.yaml
diff --git a/service/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource b/service/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
new file mode 100644
index 00000000000..84e4a741c89
--- /dev/null
+++ b/service/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
@@ -0,0 +1 @@
+ai.timefold.solver.service.quarkus.deployment.config.TimefoldBuildConfigOverrides
\ No newline at end of file
diff --git a/model/quarkus/deployment/src/main/resources/application.properties b/service/quarkus/deployment/src/main/resources/application.properties
similarity index 100%
rename from model/quarkus/deployment/src/main/resources/application.properties
rename to service/quarkus/deployment/src/main/resources/application.properties
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DefaultConfigProfileTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java
similarity index 57%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DefaultConfigProfileTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java
index 610cff0f9aa..cea95a8e01d 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DefaultConfigProfileTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DefaultConfigProfileTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import java.io.File;
import java.io.IOException;
@@ -9,12 +9,12 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.configuration.ConfigurationProfile;
-import ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile.TestdataSolution;
+import ai.timefold.solver.service.definition.api.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;
+import ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile.TestdataSolution;
import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.Test;
@@ -40,7 +40,8 @@ public class DefaultConfigProfileTest {
@Test
void defaultConfigProfileContainsAllProperties() throws IOException {
File defaultConfigProfile =
- new File("target/timefold/timefold-solver-model-quarkus-deployment/default-config-profile/default-config.json");
+ new File(
+ "target/timefold/timefold-solver-service-quarkus-deployment/default-config-profile/default-config.json");
ConfigurationProfile configurationProfile =
objectMapper.readValue(defaultConfigProfile, ConfigurationProfile.class);
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DuplicateValidationIssueTypesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java
similarity index 52%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DuplicateValidationIssueTypesTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java
index 7f08980c624..d0e123e8900 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/DuplicateValidationIssueTypesTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/DuplicateValidationIssueTypesTest.java
@@ -1,17 +1,17 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
-import ai.timefold.solver.model.definition.api.validation.ValidationBuilder;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.DuplicateTestIssue;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestIssue;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataAbstractIssue;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataModelValidator;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates.TestdataSolution;
+import ai.timefold.solver.service.definition.api.validation.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;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataModelValidator;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates.TestdataSolution;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java
similarity index 69%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java
index 97546b97e89..03068905cbb 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorConstraintReferenceTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
@@ -9,16 +9,16 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigParameter;
-import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference.TestdataSolution;
+import ai.timefold.solver.service.definition.api.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;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataModelConfigOverrides;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference.TestdataSolution;
import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.Test;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorDefaultTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java
similarity index 84%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorDefaultTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java
index 46967b703d2..32c3d4c5f75 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorDefaultTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorDefaultTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
@@ -10,18 +10,18 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.definition.api.domain.DataFormat;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigParameter;
-import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.ObjectParameter;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataSolution;
+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.ModelConfigDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter;
+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;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConfigOverrides;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataSolution;
import org.assertj.core.api.SoftAssertions;
import org.eclipse.microprofile.openapi.models.media.Schema;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorSchemaTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java
similarity index 77%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorSchemaTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java
index 420f710d467..01bc90ea82b 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigDescriptorSchemaTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigDescriptorSchemaTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
@@ -10,18 +10,18 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.definition.api.domain.DataFormat;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigParameter;
-import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.ObjectParameter;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataSolution;
+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.ModelConfigDescriptor;
+import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigParameter;
+import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.ObjectParameter;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataModelConfigOverrides;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataSolution;
import org.assertj.core.api.SoftAssertions;
import org.eclipse.microprofile.openapi.models.media.Schema;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigMissingResourcesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigMissingResourcesTest.java
similarity index 51%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigMissingResourcesTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigMissingResourcesTest.java
index 367816d3764..313395b06b0 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelConfigMissingResourcesTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelConfigMissingResourcesTest.java
@@ -1,14 +1,14 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.ObjectParameter;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema.TestdataSolution;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.ObjectParameter;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataModelConfigOverrides;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema.TestdataSolution;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelDescriptorResourceTypeTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java
similarity index 55%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelDescriptorResourceTypeTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java
index 3f16820391b..56c5a371982 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelDescriptorResourceTypeTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelDescriptorResourceTypeTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
@@ -9,14 +9,14 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.ObjectParameter;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConfigOverrides;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault.TestdataSolution;
+import ai.timefold.solver.service.definition.api.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;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConfigOverrides;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault.TestdataSolution;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelNameValidationTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelNameValidationTest.java
similarity index 94%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelNameValidationTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelNameValidationTest.java
index 3ec780ceca8..f18d9584be7 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelNameValidationTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelNameValidationTest.java
@@ -1,6 +1,6 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.TimefoldModelDescriptorProcessor.validateModelId;
+import static ai.timefold.solver.service.quarkus.deployment.TimefoldModelDescriptorProcessor.validateModelId;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelResourceTypeParsingTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java
similarity index 86%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelResourceTypeParsingTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java
index 47c3928fd66..b0928cdcb77 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelResourceTypeParsingTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelResourceTypeParsingTest.java
@@ -1,10 +1,10 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.TimefoldModelDescriptorProcessor.getResourceTypeFromPath;
+import static ai.timefold.solver.service.quarkus.deployment.TimefoldModelDescriptorProcessor.getResourceTypeFromPath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import ai.timefold.solver.model.definition.api.ResourceType;
+import ai.timefold.solver.service.definition.api.ResourceType;
import org.junit.jupiter.api.Test;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelsExtensionStorageGenerationTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelsExtensionStorageGenerationTest.java
similarity index 50%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelsExtensionStorageGenerationTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelsExtensionStorageGenerationTest.java
index a0d7ab30ddf..f956316d427 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ModelsExtensionStorageGenerationTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ModelsExtensionStorageGenerationTest.java
@@ -1,25 +1,25 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import jakarta.inject.Inject;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService;
-import ai.timefold.solver.model.definition.internal.storage.Storage;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelConfig;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelConstraintJustification;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelInput;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelInputMetrics;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelOutput;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataModelOutputMetrics;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.storage.TestdataSolution;
+import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService;
+import ai.timefold.solver.service.definition.internal.storage.Storage;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelConfig;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelConstraintJustification;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelInput;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelInputMetrics;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelOutput;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataModelOutputMetrics;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.storage.TestdataSolution;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ValidationIssueTypesTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java
similarity index 74%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ValidationIssueTypesTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java
index 1f621cce9b4..0ea8d34071e 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/ValidationIssueTypesTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/ValidationIssueTypesTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment;
+package ai.timefold.solver.service.quarkus.deployment;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
@@ -11,15 +11,15 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.definition.api.validation.IssueType;
-import ai.timefold.solver.model.definition.api.validation.ValidationBuilder;
-import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validation.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validation.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validation.TestdataModelValidator;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validation.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.validation.TestdataSolution;
+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.impl.validation.ValidationIssueTypeCatalog;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataModelValidator;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.validation.TestdataSolution;
import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.Test;
@@ -84,7 +84,7 @@ void validationIssueTypeCatalogBeanGenerated() {
@Test
void validationIssueTypesWrittenInDescriptor() throws IOException {
File validationIssueTypesFile =
- new File("target/timefold/timefold-solver-model-quarkus-deployment/validation/validation-issue-types.json");
+ new File("target/timefold/timefold-solver-service-quarkus-deployment/validation/validation-issue-types.json");
List issueTypes = objectMapper.readValue(validationIssueTypesFile,
TypeFactory.defaultInstance().constructCollectionType(List.class, IssueType.class));
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java
similarity index 78%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java
index 98cceafb93b..72a56427aaf 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/descriptor/ConstraintGroupDescriptorTest.java
@@ -1,7 +1,7 @@
-package ai.timefold.solver.model.quarkus.deployment.descriptor;
+package ai.timefold.solver.service.quarkus.deployment.descriptor;
-import static ai.timefold.solver.model.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
-import static ai.timefold.solver.model.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.quarkus.deployment.DefaultConfigProfileProcessor.MODEL_CONFIG_TERMINATION_SPENT_LIMIT;
+import static ai.timefold.solver.service.worker.impl.termination.TerminationConfigParams.TERMINATION_SPENT_LIMIT;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
@@ -10,14 +10,14 @@
import jakarta.inject.Inject;
-import ai.timefold.solver.model.definition.api.ModelDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintDescriptor;
-import ai.timefold.solver.model.definition.internal.descriptor.ConstraintGroupDescriptor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup.TestdataConstraintProvider;
-import ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup.TestdataEntity;
-import ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup.TestdataModelConvertor;
-import ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup.TestdataRest;
-import ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup.TestdataSolution;
+import ai.timefold.solver.service.definition.api.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.testdata.constraintgroup.TestdataConstraintProvider;
+import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataEntity;
+import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataModelConvertor;
+import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataRest;
+import ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup.TestdataSolution;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessorTest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessorTest.java
similarity index 95%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessorTest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessorTest.java
index 856415c5d68..7f46923779e 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/openapi/SchemaPostProcessorTest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/openapi/SchemaPostProcessorTest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.openapi;
+package ai.timefold.solver.service.quarkus.deployment.openapi;
import static org.assertj.core.api.Assertions.assertThat;
-import ai.timefold.solver.model.jackson.impl.SdkBuildTimeObjectMapperFactory;
+import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory;
import org.junit.jupiter.api.Test;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java
similarity index 88%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java
index cf5e3cb64c7..092ec59b5d0 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataConstraintProvider.java
@@ -1,12 +1,12 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup;
+package ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
import ai.timefold.solver.core.api.score.stream.ConstraintFactory;
import ai.timefold.solver.core.api.score.stream.ConstraintProvider;
import ai.timefold.solver.core.api.score.stream.Joiners;
-import ai.timefold.solver.model.definition.api.description.ConstraintGroupInfo;
-import ai.timefold.solver.model.definition.api.description.ConstraintInfo;
+import ai.timefold.solver.service.definition.api.description.ConstraintGroupInfo;
+import ai.timefold.solver.service.definition.api.description.ConstraintInfo;
import org.jspecify.annotations.NonNull;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java
similarity index 83%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java
index e35ae328f6f..0a7c1382f45 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java
similarity index 73%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java
index 27da59b8b67..32bf66e42dd 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java
@@ -1,13 +1,13 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.domain.ModelConfig;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides;
@ApplicationScoped
public class TestdataModelConvertor implements
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataRest.java
similarity index 59%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataRest.java
index b8d8161f072..8c44839e6e1 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java
index 439cc6c032a..fdd9aa9aa20 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/constraintgroup/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup;
+package ai.timefold.solver.service.quarkus.deployment.testdata.constraintgroup;
import java.util.List;
@@ -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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
+import ai.timefold.solver.service.definition.api.ModelInput;
+import ai.timefold.solver.service.definition.api.ModelOutput;
+import ai.timefold.solver.service.definition.api.SolverModel;
@PlanningSolution
public class TestdataSolution
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java
similarity index 92%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java
index 75adfdcc09f..d32864fc551 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile;
+package ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java
similarity index 82%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java
index b182d00f226..9a4476cdb82 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile;
+package ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java
similarity index 80%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java
index 00eac84e0ca..11a8f8408ee 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataModelConfigOverrides.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile;
+package ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile;
import java.time.Duration;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java
similarity index 58%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java
index ceec6aefe35..d08a5c30412 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java
index 8d357477bfa..b71f8a11347 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates;
+package ai.timefold.solver.service.quarkus.deployment.testdata.defaultconfigprofile;
import java.util.List;
@@ -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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
+import ai.timefold.solver.service.definition.api.ModelInput;
+import ai.timefold.solver.service.definition.api.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/ObjectParameter.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/ObjectParameter.java
new file mode 100644
index 00000000000..e13f2e1351c
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/ObjectParameter.java
@@ -0,0 +1,5 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
+
+public record ObjectParameter(long id, String value) {
+
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java
similarity index 93%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java
index 6f66220d407..1576b70ebde 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java
similarity index 83%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java
index 19edacac24f..54bf9184a77 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java
similarity index 91%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java
index 2907fffaddf..a76b999dee9 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConfigOverrides.java
@@ -1,10 +1,10 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
public class TestdataModelConfigOverrides implements ModelConfigOverrides {
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java
similarity index 73%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java
index 19fceb24f22..4071cb6510d 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataModelConvertor.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java
@@ -1,13 +1,13 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.domain.ModelConfig;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides;
@ApplicationScoped
public class TestdataModelConvertor implements
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java
similarity index 58%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java
index ef15e31650a..146ca6b69d7 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java
index 645dbaf14f9..ab9c9b55c4c 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigdefault/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigdefault;
import java.util.List;
@@ -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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
+import ai.timefold.solver.service.definition.api.ModelInput;
+import ai.timefold.solver.service.definition.api.ModelOutput;
+import ai.timefold.solver.service.definition.api.SolverModel;
@PlanningSolution
public class TestdataSolution
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java
similarity index 92%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java
index f1caac4f788..3be8078c737 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java
similarity index 82%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java
index 0675b0220a6..cfdd1002c5a 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java
similarity index 76%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConfigOverrides.java
index a7760b3ae48..fecfb905b52 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/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.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
-import ai.timefold.solver.model.definition.api.domain.ConstraintReference;
-import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind;
+import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.domain.ConstraintReference;
+import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind;
public class TestdataModelConfigOverrides implements ModelConfigOverrides {
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java
similarity index 73%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java
index 7079ad02e97..34de2c2dc72 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataModelConvertor.java
@@ -1,13 +1,13 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.domain.ModelConfig;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides;
@ApplicationScoped
public class TestdataModelConvertor implements
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java
similarity index 58%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java
index 9dd4223b6c0..9f4ffed97a4 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java
similarity index 78%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java
index c48968ded36..e02798aaf07 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigreference;
import java.util.List;
@@ -9,13 +9,13 @@
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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
-import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware;
-import ai.timefold.solver.model.definition.api.metrics.OutputMetricsAware;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelInputMetrics;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelOutputMetrics;
+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.quarkus.deployment.defaults.EmptyModelInputMetrics;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics;
@PlanningSolution
public class TestdataSolution
diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/ObjectParameter.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/ObjectParameter.java
new file mode 100644
index 00000000000..50add25b9eb
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/ObjectParameter.java
@@ -0,0 +1,5 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
+
+public record ObjectParameter(long id, String value) {
+
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java
similarity index 93%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java
index ad21a5d8f46..0c2aa890ca5 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java
similarity index 83%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java
index dd3b4b550bb..beb332ab23a 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/constraintgroup/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.constraintgroup;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java
similarity index 85%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java
index 54d2ed822b4..4337c2d05cd 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConfigOverrides.java
@@ -1,9 +1,9 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigschema;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import java.time.Duration;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
-import ai.timefold.solver.model.definition.api.domain.DataFormat;
+import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.domain.DataFormat;
import org.eclipse.microprofile.openapi.annotations.media.Schema;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java
similarity index 73%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java
index 75bb3d7e5e8..8f2cdfdefdc 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/TestdataModelConvertor.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataModelConvertor.java
@@ -1,13 +1,13 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigdefault;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.domain.ModelConfig;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides;
@ApplicationScoped
public class TestdataModelConvertor implements
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java
similarity index 59%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java
index 4126641a664..fa1bd96f47c 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java
similarity index 78%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java
index 0a0fd7b3e0a..aaf028d2b66 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigreference/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/modelconfigschema/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.modelconfigreference;
+package ai.timefold.solver.service.quarkus.deployment.testdata.modelconfigschema;
import java.util.List;
@@ -9,13 +9,13 @@
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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
-import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware;
-import ai.timefold.solver.model.definition.api.metrics.OutputMetricsAware;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelInputMetrics;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelOutputMetrics;
+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.quarkus.deployment.defaults.EmptyModelInputMetrics;
+import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelOutputMetrics;
@PlanningSolution
public class TestdataSolution
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java
similarity index 93%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java
index 90c659ab55f..88ba0b36d25 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataEntity.java
similarity index 85%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataEntity.java
index 1cc6e36f61e..15b8a54c47f 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConfig.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java
similarity index 52%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConfig.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConfig.java
index 2fb29765113..2b22e908ce4 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/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.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
-import ai.timefold.solver.model.definition.api.ModelConfigOverrides;
+import ai.timefold.solver.service.definition.api.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
new file mode 100644
index 00000000000..46ece90728f
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java
@@ -0,0 +1,7 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
+
+import ai.timefold.solver.service.definition.api.ModelConstraintJustification;
+
+public class TestdataModelConstraintJustification implements ModelConstraintJustification {
+
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConvertor.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java
similarity index 80%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConvertor.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java
index fbe19e41dbd..0f47bb79261 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConvertor.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelConvertor.java
@@ -1,12 +1,12 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import ai.timefold.solver.core.api.score.SimpleScore;
-import ai.timefold.solver.model.definition.api.ModelConvertor;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
+import ai.timefold.solver.service.definition.api.ModelConvertor;
+import ai.timefold.solver.service.definition.api.domain.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
new file mode 100644
index 00000000000..68d87e9863d
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInput.java
@@ -0,0 +1,7 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
+
+import ai.timefold.solver.service.definition.api.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
new file mode 100644
index 00000000000..0f59d9d72d5
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java
@@ -0,0 +1,7 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
+
+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
new file mode 100644
index 00000000000..dc1b8ef1926
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutput.java
@@ -0,0 +1,7 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
+
+import ai.timefold.solver.service.definition.api.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
new file mode 100644
index 00000000000..7871b64bd74
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java
@@ -0,0 +1,7 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
+
+import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics;
+
+public class TestdataModelOutputMetrics implements ModelOutputMetrics {
+
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataRest.java
similarity index 60%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataRest.java
index 8c7f8cffa69..180e1cf1fd1 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java
index 80bd59402eb..980dfd020df 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/storage/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.storage;
+package ai.timefold.solver.service.quarkus.deployment.testdata.storage;
import java.util.List;
@@ -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.model.definition.api.SolverModel;
-import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware;
-import ai.timefold.solver.model.definition.api.metrics.OutputMetricsAware;
+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/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java
similarity index 93%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java
index 3a5c35b344e..06517629d25 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataConstraintProvider.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validation;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validation;
import ai.timefold.solver.core.api.score.SimpleScore;
import ai.timefold.solver.core.api.score.stream.Constraint;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataEntity.java
similarity index 84%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataEntity.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataEntity.java
index c63007ff272..c838dbf9a7f 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataEntity.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataEntity.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validation;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validation;
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java
similarity index 59%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataModelValidator.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java
index e297aa12230..d05d2cc67c3 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataModelValidator.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataModelValidator.java
@@ -1,18 +1,18 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validation;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validation;
import java.util.List;
import jakarta.enterprise.context.ApplicationScoped;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.definition.api.validation.AbstractIssue;
-import ai.timefold.solver.model.definition.api.validation.IssueCode;
-import ai.timefold.solver.model.definition.api.validation.IssueMetadata;
-import ai.timefold.solver.model.definition.api.validation.IssueSeverity;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.api.validation.ValidationBuilder;
-import ai.timefold.solver.model.definition.api.validation.metadata.IssueMessage;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+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.quarkus.deployment.defaults.EmptyModelConfigOverrides;
@ApplicationScoped
public class TestdataModelValidator
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataRest.java
similarity index 60%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataRest.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataRest.java
index 36ae0ab961b..867a9b30a09 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataRest.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataRest.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validation;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validation;
import jakarta.ws.rs.Path;
-import ai.timefold.solver.model.rest.api.ModelRest;
+import ai.timefold.solver.service.rest.api.ModelRest;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java
index 0c259c72cc8..aed22e6e7f6 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validation/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validation/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validation;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validation;
import java.util.List;
@@ -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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
+import ai.timefold.solver.service.definition.api.ModelInput;
+import ai.timefold.solver.service.definition.api.ModelOutput;
+import ai.timefold.solver.service.definition.api.SolverModel;
@PlanningSolution
public class TestdataSolution
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java
similarity index 55%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java
index 02972cbc1dc..c3754fde2b5 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/DuplicateTestIssue.java
@@ -1,8 +1,8 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
import java.util.List;
-import ai.timefold.solver.model.definition.api.validation.IssueSeverity;
+import ai.timefold.solver.service.definition.api.validation.IssueSeverity;
public class DuplicateTestIssue extends TestdataAbstractIssue {
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestIssue.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java
similarity index 52%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestIssue.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java
index 80129a3715a..bec28f3db52 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestIssue.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestIssue.java
@@ -1,9 +1,9 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
import java.util.List;
-import ai.timefold.solver.model.definition.api.validation.IssueCode;
-import ai.timefold.solver.model.definition.api.validation.IssueSeverity;
+import ai.timefold.solver.service.definition.api.validation.IssueCode;
+import ai.timefold.solver.service.definition.api.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
new file mode 100644
index 00000000000..d9ca4920472
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java
@@ -0,0 +1,15 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
+
+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;
+
+public abstract class TestdataAbstractIssue extends AbstractIssue {
+
+ public TestdataAbstractIssue(IssueCode code, IssueSeverity severity, List metadata) {
+ super(code, severity, metadata);
+ }
+}
diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java
new file mode 100644
index 00000000000..a57ea68ddf0
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java
@@ -0,0 +1,27 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
+
+import ai.timefold.solver.core.api.score.SimpleScore;
+import ai.timefold.solver.core.api.score.stream.Constraint;
+import ai.timefold.solver.core.api.score.stream.ConstraintFactory;
+import ai.timefold.solver.core.api.score.stream.ConstraintProvider;
+import ai.timefold.solver.core.api.score.stream.Joiners;
+
+import org.jspecify.annotations.NonNull;
+
+public class TestdataConstraintProvider implements ConstraintProvider {
+
+ public static final SimpleScore NO_CONFLICTS_CONSTRAINT_WEIGHT = SimpleScore.ONE;
+ public static final String NO_CONFLICTS_CONSTRAINT_NAME = "noConflicts";
+
+ @Override
+ public Constraint @NonNull [] defineConstraints(@NonNull ConstraintFactory factory) {
+ return new Constraint[] {
+ factory.forEach(TestdataEntity.class)
+ .join(TestdataEntity.class,
+ Joiners.equal(TestdataEntity::getValue))
+ .filter((a, b) -> a != b)
+ .penalize(NO_CONFLICTS_CONSTRAINT_WEIGHT)
+ .asConstraint(NO_CONFLICTS_CONSTRAINT_NAME)
+ };
+ }
+}
diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java
new file mode 100644
index 00000000000..9b5fb0ba28f
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java
@@ -0,0 +1,20 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
+
+import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
+import ai.timefold.solver.core.api.domain.variable.PlanningVariable;
+
+@PlanningEntity
+public class TestdataEntity {
+
+ private String value;
+
+ @PlanningVariable(valueRangeProviderRefs = "valueRange")
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java
similarity index 52%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java
index 54a90e3bcbb..539c32f5916 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataModelValidator.java
@@ -1,11 +1,11 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
import jakarta.enterprise.context.ApplicationScoped;
-import ai.timefold.solver.model.definition.api.domain.ModelConfig;
-import ai.timefold.solver.model.definition.api.validation.ModelValidator;
-import ai.timefold.solver.model.definition.api.validation.ValidationBuilder;
-import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides;
+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.quarkus.deployment.defaults.EmptyModelConfigOverrides;
/**
* Simulates duplicate issue types (by their code) in the catalog.
diff --git a/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataRest.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataRest.java
new file mode 100644
index 00000000000..1566f3b4dd8
--- /dev/null
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataRest.java
@@ -0,0 +1,12 @@
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
+
+import jakarta.ws.rs.Path;
+
+import ai.timefold.solver.service.rest.api.ModelRest;
+
+import org.eclipse.microprofile.openapi.annotations.tags.Tag;
+
+@Tag(name = "Testdata REST")
+@Path("/v1/testdata")
+public interface TestdataRest extends ModelRest {
+}
diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java
similarity index 87%
rename from model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java
rename to service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java
index b68664b9aaa..68b006b85d2 100644
--- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/defaultconfigprofile/TestdataSolution.java
+++ b/service/quarkus/deployment/src/test/java/ai/timefold/solver/service/quarkus/deployment/testdata/validationduplicates/TestdataSolution.java
@@ -1,4 +1,4 @@
-package ai.timefold.solver.model.quarkus.deployment.testdata.defaultconfigprofile;
+package ai.timefold.solver.service.quarkus.deployment.testdata.validationduplicates;
import java.util.List;
@@ -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.model.definition.api.ModelInput;
-import ai.timefold.solver.model.definition.api.ModelOutput;
-import ai.timefold.solver.model.definition.api.SolverModel;
+import ai.timefold.solver.service.definition.api.ModelInput;
+import ai.timefold.solver.service.definition.api.ModelOutput;
+import ai.timefold.solver.service.definition.api.SolverModel;
@PlanningSolution
public class TestdataSolution
diff --git a/model/quarkus/integration-tests/pom.xml b/service/quarkus/integration-tests/pom.xml
similarity index 87%
rename from model/quarkus/integration-tests/pom.xml
rename to service/quarkus/integration-tests/pom.xml
index 804fc820eb2..9e04c70f813 100644
--- a/model/quarkus/integration-tests/pom.xml
+++ b/service/quarkus/integration-tests/pom.xml
@@ -6,11 +6,11 @@
4.0.0
ai.timefold.solver
- timefold-solver-model-quarkus-parent
+ timefold-solver-service-quarkus-parent
${revision}
- timefold-solver-model-quarkus-integration-tests
- (Preview) Timefold Solver Model Quarkus Extension: Integration Tests
+ timefold-solver-service-quarkus-integration-tests
+ (Preview) Timefold Solver Service Quarkus Extension: Integration Tests
true
@@ -21,15 +21,15 @@