diff --git a/.mvn/maven.config b/.mvn/maven.config index 04b9cea7770..bc64d227cc1 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1,4 +1,4 @@ -ntp -# timefold-solver-model-parent configures maven plugins required for Timefold models, but failing the build +# timefold-solver-service-parent configures maven plugins required for Timefold models, but failing the build # of that module itself. This way, we disable the plugin execution, while it remains active by default for models. -Dai.timefold.sdk.model.processing.disabled \ No newline at end of file diff --git a/build/bom/pom.xml b/build/bom/pom.xml index 0e68a2d543c..ce76c6dd6ba 100644 --- a/build/bom/pom.xml +++ b/build/bom/pom.xml @@ -289,106 +289,106 @@ ${version.ai.timefold.solver} - + ai.timefold.solver - timefold-solver-model + timefold-solver-service ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model + timefold-solver-service ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-with-maps + timefold-solver-service-with-maps ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-with-maps + timefold-solver-service-with-maps ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-jackson + timefold-solver-service-jackson ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-jackson + timefold-solver-service-jackson ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-json + timefold-solver-service-json ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-json + timefold-solver-service-json ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-rest + timefold-solver-service-rest ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-rest + timefold-solver-service-rest ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-worker + timefold-solver-service-worker ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-worker + timefold-solver-service-worker ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-quarkus + timefold-solver-service-quarkus ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-quarkus + timefold-solver-service-quarkus ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-quarkus-deployment + timefold-solver-service-quarkus-deployment ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-quarkus-deployment + timefold-solver-service-quarkus-deployment ${version.ai.timefold.solver} sources @@ -396,90 +396,90 @@ ai.timefold.solver - timefold-solver-model-maps-api + timefold-solver-service-maps-api ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-api + timefold-solver-service-maps-api ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-maps-service-client + timefold-solver-service-maps-service-client ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-service-client + timefold-solver-service-maps-service-client ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-maps-service-rest + timefold-solver-service-maps-service-rest ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-service-rest + timefold-solver-service-maps-service-rest ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-maps-service-test + timefold-solver-service-maps-service-test ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-service-test + timefold-solver-service-maps-service-test ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-quarkus-integration-tests + timefold-solver-service-quarkus-integration-tests ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-quarkus-integration-tests + timefold-solver-service-quarkus-integration-tests ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-maps-haversine + timefold-solver-service-maps-haversine ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-maps-haversine + timefold-solver-service-maps-haversine ${version.ai.timefold.solver} sources ai.timefold.solver - timefold-solver-model-defaults + timefold-solver-service-defaults ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-defaults + timefold-solver-service-defaults ${version.ai.timefold.solver} sources @@ -487,12 +487,12 @@ ai.timefold.solver - timefold-solver-model-test + timefold-solver-service-test ${version.ai.timefold.solver} ai.timefold.solver - timefold-solver-model-test + timefold-solver-service-test ${version.ai.timefold.solver} sources diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConfigOverrides.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConfigOverrides.java deleted file mode 100644 index e22817c29c5..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConfigOverrides.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.definition.api; - -public interface ModelConfigOverrides { - -} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInput.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInput.java deleted file mode 100644 index f882254cb8d..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.definition.api; - -public interface ModelInput { - -} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelOutput.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelOutput.java deleted file mode 100644 index dde254fb128..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelOutput.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.definition.api; - -public interface ModelOutput { - -} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ResourceType.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ResourceType.java deleted file mode 100644 index 1331681fb57..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ResourceType.java +++ /dev/null @@ -1,4 +0,0 @@ -package ai.timefold.solver.model.definition.api; - -public record ResourceType(String value) { -} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoData.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoData.java deleted file mode 100644 index debf718a13b..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoData.java +++ /dev/null @@ -1,9 +0,0 @@ -package ai.timefold.solver.model.definition.api.data; - -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; - -public record DemoData(DemoMetaData metaData, - ModelRequest modelRequest) { -} \ No newline at end of file diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelInputMetrics.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelInputMetrics.java deleted file mode 100644 index 3c0b8588c21..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelInputMetrics.java +++ /dev/null @@ -1,4 +0,0 @@ -package ai.timefold.solver.model.definition.api.metrics; - -public interface ModelInputMetrics { -} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelOutputMetrics.java b/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelOutputMetrics.java deleted file mode 100644 index aa604c235f4..00000000000 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/ModelOutputMetrics.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.definition.api.metrics; - -public interface ModelOutputMetrics { - -} diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/CacheItem.java b/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/CacheItem.java deleted file mode 100644 index 1c6f222b3e4..00000000000 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/CacheItem.java +++ /dev/null @@ -1,11 +0,0 @@ -package ai.timefold.solver.model.maps.service.client.impl; - -import java.util.List; - -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; - -public record CacheItem(TravelTimeAndDistance travelTimeAndDistance, List locations, String hash, - List locationsOutOfMap, String resolvedMapLocation) { - -} diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClient.java b/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClient.java deleted file mode 100644 index 4cea1818c82..00000000000 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClient.java +++ /dev/null @@ -1,15 +0,0 @@ -package ai.timefold.solver.model.maps.service.client.impl; - -import ai.timefold.solver.model.maps.service.client.impl.error.MapServiceExceptionMapper; -import ai.timefold.solver.model.maps.service.integration.internal.MapManagementApi; -import ai.timefold.solver.model.maps.service.integration.internal.MapServiceApi; -import ai.timefold.solver.model.maps.service.integration.internal.MapServiceHealthCheckApi; - -import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -@RegisterRestClient(configKey = "map-service") -@RegisterProvider(MapServiceExceptionMapper.class) -public interface MapServiceClient extends MapServiceApi, MapServiceHealthCheckApi, MapManagementApi { - -} diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelInput.java b/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelInput.java deleted file mode 100644 index 0521827664f..00000000000 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelInput.java +++ /dev/null @@ -1,6 +0,0 @@ -package ai.timefold.solver.model.maps.service.client.util; - -import ai.timefold.solver.model.definition.api.ModelInput; - -public class DummyModelInput implements ModelInput { -} diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelOutput.java b/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelOutput.java deleted file mode 100644 index b3d06efc2a2..00000000000 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyModelOutput.java +++ /dev/null @@ -1,6 +0,0 @@ -package ai.timefold.solver.model.maps.service.client.util; - -import ai.timefold.solver.model.definition.api.ModelOutput; - -public class DummyModelOutput implements ModelOutput { -} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/reflection/ReflectionConfiguration.java b/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/reflection/ReflectionConfiguration.java deleted file mode 100644 index e8670f411f5..00000000000 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/reflection/ReflectionConfiguration.java +++ /dev/null @@ -1,10 +0,0 @@ -package ai.timefold.solver.model.maps.service.integration.impl.reflection; - -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; - -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection(targets = { TravelTimeAndDistance.class }) -public class ReflectionConfiguration { - -} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSet.java b/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSet.java deleted file mode 100644 index c9c5e1db799..00000000000 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSet.java +++ /dev/null @@ -1,8 +0,0 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; - -import java.util.List; - -import ai.timefold.solver.model.maps.api.model.Location; - -public record LocationSet(List locations, String options) { -} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/PatchLocationSet.java b/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/PatchLocationSet.java deleted file mode 100644 index 7c672044fd0..00000000000 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/PatchLocationSet.java +++ /dev/null @@ -1,8 +0,0 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; - -import java.util.List; - -import ai.timefold.solver.model.maps.api.model.Location; - -public record PatchLocationSet(List previous, List update, String options) { -} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderIdentifier.java b/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderIdentifier.java deleted file mode 100644 index a404e7b201b..00000000000 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderIdentifier.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.maps.service.integration.internal.provider; - -public interface ProviderIdentifier { - - String getProvider(); - -} diff --git a/model/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource b/model/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource deleted file mode 100644 index 199cfde0baa..00000000000 --- a/model/quarkus/deployment/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource +++ /dev/null @@ -1 +0,0 @@ -ai.timefold.solver.model.quarkus.deployment.config.TimefoldBuildConfigOverrides \ No newline at end of file diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/ObjectParameter.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/ObjectParameter.java deleted file mode 100644 index d96093909df..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigdefault/ObjectParameter.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.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/modelconfigschema/ObjectParameter.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/ObjectParameter.java deleted file mode 100644 index 8981db878af..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/modelconfigschema/ObjectParameter.java +++ /dev/null @@ -1,5 +0,0 @@ -package ai.timefold.solver.model.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/storage/TestdataModelConstraintJustification.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java deleted file mode 100644 index d7f8217260e..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelConstraintJustification.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.storage; - -import ai.timefold.solver.model.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/TestdataModelInput.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelInput.java deleted file mode 100644 index 4828f4befc0..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelInput.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.storage; - -import ai.timefold.solver.model.definition.api.ModelInput; - -public class TestdataModelInput implements ModelInput { - -} diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java deleted file mode 100644 index bb26a69efa4..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelInputMetrics.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.storage; - -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; - -public class TestdataModelInputMetrics implements ModelInputMetrics { - -} diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutput.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutput.java deleted file mode 100644 index 087c0546c14..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutput.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.storage; - -import ai.timefold.solver.model.definition.api.ModelOutput; - -public class TestdataModelOutput implements ModelOutput { - -} diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java deleted file mode 100644 index 049c61f9e38..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/storage/TestdataModelOutputMetrics.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.storage; - -import ai.timefold.solver.model.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/validationduplicates/TestdataAbstractIssue.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java deleted file mode 100644 index 9227debe54e..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataAbstractIssue.java +++ /dev/null @@ -1,15 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates; - -import java.util.List; - -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; - -public abstract class TestdataAbstractIssue extends AbstractIssue { - - public TestdataAbstractIssue(IssueCode code, IssueSeverity severity, List metadata) { - super(code, severity, metadata); - } -} diff --git a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java deleted file mode 100644 index 91b99d8ca02..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataConstraintProvider.java +++ /dev/null @@ -1,27 +0,0 @@ -package ai.timefold.solver.model.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/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java deleted file mode 100644 index e608f30a5c8..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataEntity.java +++ /dev/null @@ -1,20 +0,0 @@ -package ai.timefold.solver.model.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/TestdataRest.java b/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataRest.java deleted file mode 100644 index 6872fb84bcb..00000000000 --- a/model/quarkus/deployment/src/test/java/ai/timefold/solver/model/quarkus/deployment/testdata/validationduplicates/TestdataRest.java +++ /dev/null @@ -1,12 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.testdata.validationduplicates; - -import jakarta.ws.rs.Path; - -import ai.timefold.solver.model.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/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConstraintJustification.java b/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConstraintJustification.java deleted file mode 100644 index 710d57e120b..00000000000 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConstraintJustification.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.it; - -import ai.timefold.solver.model.definition.api.ModelConstraintJustification; - -public class TestdataModelConstraintJustification implements ModelConstraintJustification { - -} diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelInputMetrics.java b/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelInputMetrics.java deleted file mode 100644 index dc718d41980..00000000000 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelInputMetrics.java +++ /dev/null @@ -1,6 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.it; - -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; - -public class TestdataModelInputMetrics implements ModelInputMetrics { -} diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelOutputMetrics.java b/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelOutputMetrics.java deleted file mode 100644 index 70b9e602861..00000000000 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelOutputMetrics.java +++ /dev/null @@ -1,7 +0,0 @@ -package ai.timefold.solver.model.quarkus.deployment.it; - -import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics; - -public class TestdataModelOutputMetrics implements ModelOutputMetrics { - -} diff --git a/model/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback b/model/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback deleted file mode 100644 index 0059bb8ee43..00000000000 --- a/model/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback +++ /dev/null @@ -1 +0,0 @@ -ai.timefold.solver.model.test.impl.quarkus.ModelRequestSerializationCallback \ No newline at end of file diff --git a/pom.xml b/pom.xml index 0e4bf7382b5..5ab2e691143 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ spring-integration quarkus-integration tools - model + service diff --git a/model/build/build-support/pom.xml b/service/build/build-support/pom.xml similarity index 71% rename from model/build/build-support/pom.xml rename to service/build/build-support/pom.xml index 15d6b313948..a40cf4c83c0 100644 --- a/model/build/build-support/pom.xml +++ b/service/build/build-support/pom.xml @@ -4,13 +4,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../../pom.xml - timefold-solver-model-build-support - (Preview) Timefold Solver Model build support + timefold-solver-service-build-support + (Preview) Timefold Solver Service build support Contains helper artifacts for a Timefold model build diff --git a/model/build/build-support/src/main/resources/container-integration-tests.env b/service/build/build-support/src/main/resources/container-integration-tests.env similarity index 100% rename from model/build/build-support/src/main/resources/container-integration-tests.env rename to service/build/build-support/src/main/resources/container-integration-tests.env diff --git a/model/build/config/pom.xml b/service/build/config/pom.xml similarity index 85% rename from model/build/config/pom.xml rename to service/build/config/pom.xml index c05cef667ab..ec29ed58900 100644 --- a/model/build/config/pom.xml +++ b/service/build/config/pom.xml @@ -4,14 +4,14 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../../pom.xml - timefold-solver-model-config + timefold-solver-service-config jar - (Preview) Timefold Solver Model Config + (Preview) Timefold Solver Service Config 3.1.1 diff --git a/model/build/config/src/main/java/ai/timefold/solver/model/config/ConfigDumperMain.java b/service/build/config/src/main/java/ai/timefold/solver/service/config/ConfigDumperMain.java similarity index 92% rename from model/build/config/src/main/java/ai/timefold/solver/model/config/ConfigDumperMain.java rename to service/build/config/src/main/java/ai/timefold/solver/service/config/ConfigDumperMain.java index 26fe7879a98..405a89fa23c 100644 --- a/model/build/config/src/main/java/ai/timefold/solver/model/config/ConfigDumperMain.java +++ b/service/build/config/src/main/java/ai/timefold/solver/service/config/ConfigDumperMain.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.config; +package ai.timefold.solver.service.config; import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; diff --git a/model/definition/pom.xml b/service/definition/pom.xml similarity index 89% rename from model/definition/pom.xml rename to service/definition/pom.xml index 1a7f4e66eb0..0a747792566 100644 --- a/model/definition/pom.xml +++ b/service/definition/pom.xml @@ -3,13 +3,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-definition - (Preview) Timefold Solver Model definition + timefold-solver-service-definition + (Preview) Timefold Solver Service definition This module contains basic type definitions. This module is in a preview state and thus is a subject to changes. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/AbstractSimpleModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java similarity index 77% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/AbstractSimpleModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java index fed8c103786..3f127346cfa 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/AbstractSimpleModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/AbstractSimpleModel.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.domain.solution.PlanningScore; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware; -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.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java new file mode 100644 index 00000000000..44d05a03c68 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConfigOverrides.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api; + +public interface ModelConfigOverrides { + +} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConstraintJustification.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java similarity index 81% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConstraintJustification.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java index 540dbf49159..0bcdda4cc76 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConstraintJustification.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConstraintJustification.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java index 86e16e1a37f..f0924907a6d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertor.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.domain.ModelConfig; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; -import ai.timefold.solver.model.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.domain.ModelResponse; /** * The convertor of: diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java similarity index 83% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java index 381922561d9..73301f1fd08 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelConvertorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelConvertorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; /** * Root interface for all {@link ModelConvertor} implementations. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java similarity index 93% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java index 12ae6d3536f..8587e5e3396 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelDescriptor.java @@ -1,16 +1,16 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -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.InputMetricDescriptor; -import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor; -import ai.timefold.solver.model.definition.internal.descriptor.OutputMetricDescriptor; -import ai.timefold.solver.model.definition.internal.descriptor.UISupport; +import ai.timefold.solver.service.definition.internal.descriptor.ConstraintGroupDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.DocumentationDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.InputMetricDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.OutputMetricDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.UISupport; public class ModelDescriptor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java new file mode 100644 index 00000000000..5b6732a33ae --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api; + +public interface ModelInput { + +} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatch.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatch.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java index 56012ad0f81..903e45690e5 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatch.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatch.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import java.util.Collection; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatchOp.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java similarity index 57% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatchOp.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java index 2685cca9f8f..e6d904cc11e 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelInputPatchOp.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelInputPatchOp.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; public enum ModelInputPatchOp { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelMaturityLevel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelMaturityLevel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java index 5a7d5803c60..410fb9a0892 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelMaturityLevel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; public enum ModelMaturityLevel { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java new file mode 100644 index 00000000000..b6b07e53cc6 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelOutput.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api; + +public interface ModelOutput { + +} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelPostProcessor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelPostProcessor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java index 4a7af1f9425..07c0bf0c5a0 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/ModelPostProcessor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelPostProcessor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; public interface ModelPostProcessor { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java new file mode 100644 index 00000000000..e563788fa31 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/ResourceType.java @@ -0,0 +1,4 @@ +package ai.timefold.solver.service.definition.api; + +public record ResourceType(String value) { +} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/Resources.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/Resources.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java index b8d9fc5a7cb..c8c1e605aa1 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/Resources.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Resources.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; public record Resources(String memoryRequest, String memoryLimit, String cpuRequest, String cpuLimit) { } diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverInput.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java similarity index 64% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverInput.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java index 9994fa9e175..399742c2e9d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverInput.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverInput.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; -import ai.timefold.solver.model.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.domain.Configuration; public record SolverInput( ModelInput_ modelInput, diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java similarity index 84% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java index b65fbcda2d3..69ef87d9de5 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolverModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolverModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.Score; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolvingStatus.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolvingStatus.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java index 1fe39ae192a..445d2e50507 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/SolvingStatus.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/SolvingStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; /** * Represents the dateset lifecycle. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/Status.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java similarity index 93% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/Status.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java index 2cdce3bc795..1d6fa1f9c2a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/Status.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/Status.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import java.time.OffsetDateTime; import java.util.Map; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/TrialConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java similarity index 89% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/TrialConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java index 16f8e517f5f..73447423a6d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/TrialConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/TrialConfig.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; /** * Configuration of trial use of the model diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/UserModel.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java similarity index 83% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/UserModel.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java index 93cde7ac91a..a68e51a393a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/UserModel.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/UserModel.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.api; +package ai.timefold.solver.service.definition.api; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; public interface UserModel, Status_ extends Status> { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ConfigurationProfile.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java similarity index 98% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ConfigurationProfile.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java index 97c6390f71e..408501ea5a1 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ConfigurationProfile.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ConfigurationProfile.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.api.configuration; +package ai.timefold.solver.service.definition.api.configuration; import java.time.OffsetDateTime; import java.util.HashMap; import java.util.Map; import java.util.Objects; -import ai.timefold.solver.model.definition.api.domain.RunConfiguration; +import ai.timefold.solver.service.definition.api.domain.RunConfiguration; public class ConfigurationProfile { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/MapsConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java similarity index 94% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/MapsConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java index e13618dd507..80abe52f5c8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/MapsConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/MapsConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.configuration; +package ai.timefold.solver.service.definition.api.configuration; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ResourcesConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java similarity index 93% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ResourcesConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java index a38d4422754..4aff4a67e6c 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/configuration/ResourcesConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/configuration/ResourcesConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.configuration; +package ai.timefold.solver.service.definition.api.configuration; import java.util.Map; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/AbstractBasicDemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java similarity index 89% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/AbstractBasicDemoDataGenerator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java index 58333d6b30d..20302431df8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/AbstractBasicDemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/AbstractBasicDemoDataGenerator.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.definition.api.data; +package ai.timefold.solver.service.definition.api.data; import java.util.List; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; /** * Default {@link DemoDataGenerator} implementation for models that provide only a single demo data set with ID diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java new file mode 100644 index 00000000000..3d39eed209a --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoData.java @@ -0,0 +1,9 @@ +package ai.timefold.solver.service.definition.api.data; + +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; + +public record DemoData(DemoMetaData metaData, + ModelRequest modelRequest) { +} \ No newline at end of file diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataConfigEntry.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java similarity index 87% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataConfigEntry.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java index f20b3a00e18..6a9924253de 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataConfigEntry.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataConfigEntry.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.data; +package ai.timefold.solver.service.definition.api.data; public record DemoDataConfigEntry(String key, String value) { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataGenerator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataGenerator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java index 47f1562829e..2313f5160ea 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoDataGenerator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoDataGenerator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.data; +package ai.timefold.solver.service.definition.api.data; import java.util.List; import java.util.stream.Collectors; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoMetaData.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java similarity index 88% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoMetaData.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java index 9fe2e163a6a..146bbe00c4a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/data/DemoMetaData.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/data/DemoMetaData.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.data; +package ai.timefold.solver.service.definition.api.data; import java.util.List; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintGroupInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintGroupInfo.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintGroupInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintGroupInfo.java index d472c22c869..07816167b31 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintGroupInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintGroupInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.description; +package ai.timefold.solver.service.definition.api.description; import java.util.Arrays; import java.util.Objects; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintInfo.java similarity index 94% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintInfo.java index d3ffa7afb94..f4370614d4b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/description/ConstraintInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/description/ConstraintInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.description; +package ai.timefold.solver.service.definition.api.description; import ai.timefold.solver.core.api.score.stream.ConstraintMetadata; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Configuration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java similarity index 90% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Configuration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java index a5d18fb3684..efafb06cb6f 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Configuration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Configuration.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.configuration.MapsConfiguration; -import ai.timefold.solver.model.definition.api.configuration.ResourcesConfiguration; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.configuration.MapsConfiguration; +import ai.timefold.solver.service.definition.api.configuration.ResourcesConfiguration; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ConstraintReference.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java similarity index 73% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ConstraintReference.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java index 1a20c85001e..c236c84712f 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ConstraintReference.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ConstraintReference.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import ai.timefold.solver.model.definition.internal.descriptor.ModelConfigDescriptor; -import ai.timefold.solver.model.definition.internal.descriptor.ParameterKind; +import ai.timefold.solver.service.definition.internal.descriptor.ModelConfigDescriptor; +import ai.timefold.solver.service.definition.internal.descriptor.ParameterKind; /** * Annotates a field in a {@link ModelConfigDescriptor} to reference a constraint. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/DataFormat.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java similarity index 94% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/DataFormat.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java index 2547bb5e410..d8bdfd27bd5 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/DataFormat.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/DataFormat.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import java.util.Arrays; import java.util.stream.Stream; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Metadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java similarity index 97% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Metadata.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java index ca9e50ec3bf..30238de19bc 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/Metadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/Metadata.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; @@ -8,10 +8,10 @@ import java.util.Set; import java.util.UUID; -import ai.timefold.solver.model.definition.api.SolvingStatus; -import ai.timefold.solver.model.definition.api.Status; -import ai.timefold.solver.model.definition.api.validation.LegacyValidationResult; -import ai.timefold.solver.model.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.api.Status; +import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java similarity index 86% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java index e3d043ed781..ddb1b88f722 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelConfig.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelInputPatchRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java similarity index 75% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelInputPatchRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java index f55b84c4cca..8b59e003d50 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelInputPatchRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelInputPatchRequest.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import java.util.List; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInputPatch; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInputPatch; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java similarity index 91% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java index f846e65df3d..e9d074f2b12 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelRequest.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelResponse.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java similarity index 85% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelResponse.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java index 96988c4366f..19ff8042926 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ModelResponse.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ModelResponse.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; -import ai.timefold.solver.model.definition.api.ModelOutput; -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/RunConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/RunConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java index bf41e61cc84..d0263ddb3ea 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/RunConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/RunConfiguration.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import java.util.Set; import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Size; -import ai.timefold.solver.model.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java similarity index 89% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java index 9786f5acaf4..ef476838650 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisConfig.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisRequest.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java similarity index 86% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisRequest.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java index 33af75a8c04..4d7418321cb 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/domain/ScoreAnalysisRequest.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/domain/ScoreAnalysisRequest.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.api.domain; +package ai.timefold.solver.service.definition.api.domain; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricher.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java similarity index 81% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricher.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java index 89b8082d122..cafb973e4df 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricher.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricher.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public non-sealed interface SolverModelEnricher>> extends SolverModelEnricherBase { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java similarity index 81% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java index ffa412bfedf..4219e3ab5c9 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; /** * Root interface for all {@link SolverModelEnricher} implementations. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java similarity index 71% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java index 44fd71a5634..f869a036cf8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnricherService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnricherService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; -import ai.timefold.solver.model.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public interface SolverModelEnricherService { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirector.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirector.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java index 4f4cb22d43b..b9ac2e13bbf 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirector.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirector.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * Provides a model-specific way of enriching a solver model, typically for models using multiple enrichers depending on each diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java similarity index 83% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java index 9baa1ddb58c..eabd5efb158 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; /** * Root interface for all {@link SolverModelEnrichmentDirector} implementations. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java similarity index 87% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java index 5c319d76bb3..ddb72274cb4 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/enrichment/SolverModelEnrichmentDirectorService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/enrichment/SolverModelEnrichmentDirectorService.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api.enrichment; +package ai.timefold.solver.service.definition.api.enrichment; -import ai.timefold.solver.model.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; public interface SolverModelEnrichmentDirectorService { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ErrorInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java similarity index 91% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ErrorInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java index c07d7106dbd..11ce00e0560 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ErrorInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ErrorInfo.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.error; +package ai.timefold.solver.service.definition.api.error; import java.util.UUID; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import io.quarkus.runtime.annotations.RegisterForReflection; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ValidationErrorInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java similarity index 86% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ValidationErrorInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java index 84ca4cb555e..73811f094ae 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/error/ValidationErrorInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/error/ValidationErrorInfo.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.definition.api.error; +package ai.timefold.solver.service.definition.api.error; import java.util.List; import java.util.UUID; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; public class ValidationErrorInfo { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/log/LogInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java similarity index 91% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/log/LogInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java index ed3016c63dd..5af6afea7d5 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/log/LogInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/log/LogInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.log; +package ai.timefold.solver.service.definition.api.log; import com.fasterxml.jackson.annotation.JsonIncludeProperties; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/InputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java similarity index 66% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/InputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java index c0ab5ff76de..6201d659cd1 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/InputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/InputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.metrics; +package ai.timefold.solver.service.definition.api.metrics; public interface InputMetricsAware { diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java new file mode 100644 index 00000000000..9f084c89540 --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelInputMetrics.java @@ -0,0 +1,4 @@ +package ai.timefold.solver.service.definition.api.metrics; + +public interface ModelInputMetrics { +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java new file mode 100644 index 00000000000..fe316b3936f --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/ModelOutputMetrics.java @@ -0,0 +1,5 @@ +package ai.timefold.solver.service.definition.api.metrics; + +public interface ModelOutputMetrics { + +} diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/OutputMetricsAware.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/OutputMetricsAware.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java index b3cbfc6f76d..8553261f937 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/metrics/OutputMetricsAware.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/metrics/OutputMetricsAware.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.metrics; +package ai.timefold.solver.service.definition.api.metrics; public interface OutputMetricsAware { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/DatasetSelector.java similarity index 68% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/DatasetSelector.java index 04c1599e560..bf3e014ba48 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/DatasetSelector.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/DatasetSelector.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.rest; +package ai.timefold.solver.service.definition.api.rest; public enum DatasetSelector { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationId.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationId.java index f67503f7cd5..ed41723effd 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationId.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationId.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.rest; +package ai.timefold.solver.service.definition.api.rest; public final class OperationId { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationOnPost.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationOnPost.java index 6f8e6b5b9dc..430a77857d7 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/rest/OperationOnPost.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/rest/OperationOnPost.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.rest; +package ai.timefold.solver.service.definition.api.rest; public enum OperationOnPost { NONE, diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfig.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java similarity index 98% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfig.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java index 47680b290b0..3ccabb0e904 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfig.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfig.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.termination; +package ai.timefold.solver.service.definition.api.termination; import java.time.Duration; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/AbstractIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/AbstractIssue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java index 486a933b03a..080ea153f57 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/AbstractIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/AbstractIssue.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.Collections; import java.util.List; -import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Issue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Issue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java index e62018926e9..784283da9c6 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Issue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Issue.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.List; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueCode.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java similarity index 90% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueCode.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java index 3576212bada..feb06a33de7 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueCode.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueCode.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.Objects; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueMetadata.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java similarity index 83% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueMetadata.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java index cc34f12405c..840931e0d86 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueMetadata.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueMetadata.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; -import ai.timefold.solver.model.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueSeverity.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueSeverity.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java index 93819a5ba3e..3e78f02a2cf 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueSeverity.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueSeverity.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueType.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java similarity index 86% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueType.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java index 2be4d4a57c0..a54caef0345 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/IssueType.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/IssueType.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.List; -import ai.timefold.solver.model.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/LegacyValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/LegacyValidationResult.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java index 03a09ebb920..5357f520686 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/LegacyValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/LegacyValidationResult.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.List; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ModelValidator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java similarity index 75% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ModelValidator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java index b4313a5c3a0..c35d725342d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ModelValidator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ModelValidator.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.domain.ModelConfig; /** * Provides a complex validation of the model input before the solving, or other operation, starts. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validated.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java similarity index 78% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validated.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java index bfe0f8e76be..ce7cd60bf4b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validated.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validated.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationBuilder.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationBuilder.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java index 6d6df9acd88..e86fca3d58d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationBuilder.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationBuilder.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.ArrayList; import java.util.List; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.model.definition.api.validation.metadata.IssueMessage; -import ai.timefold.solver.model.definition.impl.validation.AbstractLegacyIssue; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; /** * Registers individual validation issues to later build the {@link ValidationResult} instance. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationStatus.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java similarity index 61% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationStatus.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java index 8df0cfb8a1f..c4e1ee453cb 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/ValidationStatus.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/ValidationStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; public enum ValidationStatus { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java similarity index 78% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java index 679dfe1bc16..b5ecc01c5b6 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/Validator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/Validator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.List; import java.util.UUID; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationIssueTypes.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java similarity index 69% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationIssueTypes.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java index 07e68c35956..a77a66fb141 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationIssueTypes.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationIssueTypes.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.validation.dto; +package ai.timefold.solver.service.definition.api.validation.dto; import java.util.Collection; -import ai.timefold.solver.model.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.validation.IssueType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationResult.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java similarity index 73% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationResult.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java index 0aa2e35d3b8..f2d29252ff0 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/dto/ValidationResult.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/dto/ValidationResult.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.definition.api.validation.dto; +package ai.timefold.solver.service.definition.api.validation.dto; import java.util.Collection; -import ai.timefold.solver.model.definition.api.validation.Issue; -import ai.timefold.solver.model.definition.api.validation.ValidationStatus; +import ai.timefold.solver.service.definition.api.validation.Issue; +import ai.timefold.solver.service.definition.api.validation.ValidationStatus; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/metadata/IssueMessage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java similarity index 68% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/metadata/IssueMessage.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java index 2297ab5d6df..286189d3a0b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/api/validation/metadata/IssueMessage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/api/validation/metadata/IssueMessage.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.api.validation.metadata; +package ai.timefold.solver.service.definition.api.validation.metadata; -import ai.timefold.solver.model.definition.api.validation.IssueMetadata; +import ai.timefold.solver.service.definition.api.validation.IssueMetadata; import io.quarkus.runtime.annotations.RecordableConstructor; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/log/LoggingConstants.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/log/LoggingConstants.java similarity index 65% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/log/LoggingConstants.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/log/LoggingConstants.java index 2ca142c2cb5..bbb570d3fa3 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/log/LoggingConstants.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/log/LoggingConstants.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.impl.log; +package ai.timefold.solver.service.definition.impl.log; public class LoggingConstants { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/StorageUtils.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageUtils.java similarity index 89% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/StorageUtils.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageUtils.java index b8bd8a46382..38f95cd48a3 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/StorageUtils.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageUtils.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.definition.impl.storage; +package ai.timefold.solver.service.definition.impl.storage; import java.util.stream.Collectors; import java.util.stream.Stream; -import ai.timefold.solver.model.definition.internal.storage.StorageAddress; +import ai.timefold.solver.service.definition.internal.storage.StorageAddress; public class StorageUtils { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/inmemory/InMemoryStorage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/inmemory/InMemoryStorage.java similarity index 87% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/inmemory/InMemoryStorage.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/inmemory/InMemoryStorage.java index ed41e8abc27..6e0934c5d3a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/storage/inmemory/InMemoryStorage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/inmemory/InMemoryStorage.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.impl.storage.inmemory; +package ai.timefold.solver.service.definition.impl.storage.inmemory; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -8,15 +8,15 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.zip.GZIPOutputStream; -import ai.timefold.solver.model.definition.api.ModelOutput; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.definition.internal.storage.Storage; -import ai.timefold.solver.model.definition.internal.storage.StorageAddress; -import ai.timefold.solver.model.definition.internal.storage.StorageConfiguration; -import ai.timefold.solver.model.definition.internal.storage.SubModelKind; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.storage.Storage; +import ai.timefold.solver.service.definition.internal.storage.StorageAddress; +import ai.timefold.solver.service.definition.internal.storage.StorageConfiguration; +import ai.timefold.solver.service.definition.internal.storage.SubModelKind; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/AbstractLegacyIssue.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/AbstractLegacyIssue.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java index 3abc192ff29..77f2c9d03bf 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/AbstractLegacyIssue.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/AbstractLegacyIssue.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.impl.validation; +package ai.timefold.solver.service.definition.impl.validation; import java.util.List; -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.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 org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/JsonMappingError.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java similarity index 56% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/JsonMappingError.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java index d8a02e46278..b1da20ca0ee 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/JsonMappingError.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/JsonMappingError.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.definition.impl.validation; +package ai.timefold.solver.service.definition.impl.validation; 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.model.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.model.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.validation.IssueCode; +import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; /** * Internal validation issue to translate a JSON parsing error diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/ValidationIssueTypeCatalog.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java similarity index 75% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/ValidationIssueTypeCatalog.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java index 03b3696ecf8..20b3e7f8ba7 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/impl/validation/ValidationIssueTypeCatalog.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/validation/ValidationIssueTypeCatalog.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.impl.validation; +package ai.timefold.solver.service.definition.impl.validation; import java.util.Collection; -import ai.timefold.solver.model.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.validation.IssueType; /** * Provides all supported {@link IssueType validation issue types}. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/Headers.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java similarity index 93% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/Headers.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java index cc701bb7e06..d83e1332070 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/Headers.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/Headers.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal; +package ai.timefold.solver.service.definition.internal; public class Headers { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/MapEnrichmentContext.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java similarity index 91% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/MapEnrichmentContext.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java index e5c738c5cb4..308aada4be7 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/MapEnrichmentContext.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal; +package ai.timefold.solver.service.definition.internal; import jakarta.enterprise.context.ApplicationScoped; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintDescriptor.java similarity index 84% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintDescriptor.java index 4a08bc0f230..61cfd63bf6f 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintDescriptor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; /** * Describes a single constraints and its parameters. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintGroupDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintGroupDescriptor.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintGroupDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintGroupDescriptor.java index 5fbc23ecac8..88a9fa7dc97 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ConstraintGroupDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ConstraintGroupDescriptor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; import java.util.Arrays; import java.util.Objects; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationDescriptor.java similarity index 90% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationDescriptor.java index 7d77d29e805..a7a6f80a7b8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationDescriptor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; import java.net.URL; import java.util.Objects; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationSupport.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationSupport.java similarity index 79% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationSupport.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationSupport.java index 2681d4354e7..780abbc5f7a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/DocumentationSupport.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/DocumentationSupport.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; /** * Specifies the level of documentation support available for a model. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/InputMetricDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java similarity index 88% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/InputMetricDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java index 85ccf6df438..ccc9573d7be 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/InputMetricDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/InputMetricDescriptor.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.model.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.domain.DataFormat; /** * Defines InputMetric of the model where information is retrieved from ModelInputMetric class of the model diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelBuildInfo.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelBuildInfo.java similarity index 69% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelBuildInfo.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelBuildInfo.java index 450ad689dde..a366b55df4b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelBuildInfo.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelBuildInfo.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; public record ModelBuildInfo(String solverVersion, String sdkVersion, String version, String buildTime, String branch, String buildCommit) { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigDescriptor.java similarity index 82% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigDescriptor.java index e13b2b9be83..a7d52c295b2 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigDescriptor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; import java.util.List; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigParameter.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java similarity index 85% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigParameter.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java index 0680d5353e1..e5f25a2e4ca 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ModelConfigParameter.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ModelConfigParameter.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; -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.models.media.Schema.SchemaType; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/OutputMetricDescriptor.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java similarity index 88% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/OutputMetricDescriptor.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java index db83f47178a..d1f14fbd4fb 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/OutputMetricDescriptor.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/OutputMetricDescriptor.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; -import ai.timefold.solver.model.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.domain.DataFormat; /** * Defines Output Metric of the model where information is retrieved from ModelOutputMetrics class of the model diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ParameterKind.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ParameterKind.java similarity index 77% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ParameterKind.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ParameterKind.java index e9076d4143f..0f1e8af87a9 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/ParameterKind.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/ParameterKind.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; public enum ParameterKind { /** diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/UISupport.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/UISupport.java similarity index 78% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/UISupport.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/UISupport.java index 459c0999058..d55bc5dd8e2 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/descriptor/UISupport.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/descriptor/UISupport.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.descriptor; +package ai.timefold.solver.service.definition.internal.descriptor; /** * Represents the type of UI support available. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ErrorCodes.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ErrorCodes.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ErrorCodes.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ErrorCodes.java index ed4a94807a7..13a0ac41851 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ErrorCodes.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ErrorCodes.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.error; +package ai.timefold.solver.service.definition.internal.error; public class ErrorCodes { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ItemNotFoundException.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ItemNotFoundException.java similarity index 84% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ItemNotFoundException.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ItemNotFoundException.java index eb294fd2dac..ef795d26710 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/ItemNotFoundException.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/ItemNotFoundException.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.error; +package ai.timefold.solver.service.definition.internal.error; public class ItemNotFoundException extends RuntimeException { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/TimefoldRuntimeException.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/TimefoldRuntimeException.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/TimefoldRuntimeException.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/TimefoldRuntimeException.java index 81feec5db11..1434c4c6862 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/error/TimefoldRuntimeException.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/error/TimefoldRuntimeException.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.error; +package ai.timefold.solver.service.definition.internal.error; import java.util.UUID; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractDatasetEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java similarity index 84% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractDatasetEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java index c151762a03f..0eb0546c21b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractDatasetEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractDatasetEvent.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Event referencing the associated {@link Metadata}. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractEvent.java similarity index 89% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractEvent.java index 318cb32c969..a289ca36331 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/AbstractEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/AbstractEvent.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public abstract sealed class AbstractEvent permits AbstractDatasetEvent, ItemCompleted, SolveStartCommand, SolveTerminateCommand, diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/BestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java similarity index 75% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/BestSolutionEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java index d546326cb67..216542ecfdc 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/BestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/BestSolutionEvent.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * This event is sent when a new best solution is found during the solving process. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetComputedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java similarity index 69% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetComputedEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java index 758f8765204..725fd425152 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetComputedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetComputedEvent.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Event sent when the outputs of a dataset are computed before solving. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetCreatedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java similarity index 63% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetCreatedEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java index 7bf67a1e828..161e1b5be53 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetCreatedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetCreatedEvent.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Event that a new dataset is submitted via the API. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidateComputeCommand.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidateComputeCommand.java similarity index 81% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidateComputeCommand.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidateComputeCommand.java index 71365561e62..24739c43e16 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidateComputeCommand.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidateComputeCommand.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public final class DatasetValidateComputeCommand extends AbstractEvent { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidatedEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java similarity index 54% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidatedEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java index a530511979a..1c49bc2a1bb 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/DatasetValidatedEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/DatasetValidatedEvent.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; /** * Sent when a dataset is successfully validated by {@link ModelValidator}. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FailedSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java similarity index 84% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FailedSolutionEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java index 5f98d8d6617..12ccb6aafd6 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FailedSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FailedSolutionEvent.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Sent when a solver worker fails during solving. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FinalBestSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java similarity index 69% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FinalBestSolutionEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java index 82c69b64177..aa521e24e83 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/FinalBestSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/FinalBestSolutionEvent.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Sent when the solver worker produces the final best solution upon termination conditions. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/InitSolutionEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java similarity index 69% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/InitSolutionEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java index e77acd4146a..1b41ade0301 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/InitSolutionEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/InitSolutionEvent.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Sent when a solver worker produces the first, initialized, solution. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemCompleted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemCompleted.java similarity index 66% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemCompleted.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemCompleted.java index fe5d873ca62..b5e8daafac6 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemCompleted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemCompleted.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public final class ItemCompleted extends AbstractEvent { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemFailed.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java similarity index 77% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemFailed.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java index a3255fabcd2..d38de28cf16 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemFailed.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemFailed.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Event that indicates a dataset has failed during processing. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemStarted.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java similarity index 62% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemStarted.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java index ea6a78d24d0..8b9b49044ec 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemStarted.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemStarted.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Event sent when the solver worker starts solving the dataset. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemTerminated.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemTerminated.java similarity index 66% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemTerminated.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemTerminated.java index e1803be059f..8ecd88ab5d5 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/ItemTerminated.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/ItemTerminated.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public final class ItemTerminated extends AbstractEvent { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveStartCommand.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveStartCommand.java similarity index 67% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveStartCommand.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveStartCommand.java index 68a29dd546d..20e3c4f3a2c 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveStartCommand.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveStartCommand.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public final class SolveStartCommand extends AbstractEvent { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveTerminateCommand.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveTerminateCommand.java similarity index 68% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveTerminateCommand.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveTerminateCommand.java index cbe261b8b63..5e53c61c797 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolveTerminateCommand.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolveTerminateCommand.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public final class SolveTerminateCommand extends AbstractEvent { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverChannels.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverChannels.java similarity index 94% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverChannels.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverChannels.java index ffd7b270e5e..a388cd5b561 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverChannels.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverChannels.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; public class SolverChannels { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverWorkerEvent.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java similarity index 86% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverWorkerEvent.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java index 15fd190499e..b0e0bc4cf34 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/events/SolverWorkerEvent.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/events/SolverWorkerEvent.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.internal.events; +package ai.timefold.solver.service.definition.internal.events; import ai.timefold.solver.core.api.solver.SolverJob; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.Metadata; /** * Base class for events produced by the SolverWorker. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/EnvironmentVars.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/EnvironmentVars.java similarity index 96% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/EnvironmentVars.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/EnvironmentVars.java index b024bc2bc97..28f07a91a3d 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/EnvironmentVars.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/EnvironmentVars.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.platform; +package ai.timefold.solver.service.definition.internal.platform; public class EnvironmentVars { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/OnStartCommand.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/OnStartCommand.java similarity index 85% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/OnStartCommand.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/OnStartCommand.java index f7d2a6a43cf..f25f981e4a7 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/platform/OnStartCommand.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/platform/OnStartCommand.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.platform; +package ai.timefold.solver.service.definition.internal.platform; /** * Command that is expected to be executed by solver worker upon start. diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/solver/BestSolutionConsumerDecorator.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/solver/BestSolutionConsumerDecorator.java similarity index 83% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/solver/BestSolutionConsumerDecorator.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/solver/BestSolutionConsumerDecorator.java index eadb984b7aa..9135d2b2655 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/solver/BestSolutionConsumerDecorator.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/solver/BestSolutionConsumerDecorator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.solver; +package ai.timefold.solver.service.definition.internal.solver; import java.util.function.Consumer; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/stats/StatisticsCollector.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/stats/StatisticsCollector.java similarity index 55% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/stats/StatisticsCollector.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/stats/StatisticsCollector.java index 6f861148d1b..fe820daa1f8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/stats/StatisticsCollector.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/stats/StatisticsCollector.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.stats; +package ai.timefold.solver.service.definition.internal.stats; public interface StatisticsCollector { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/AbstractStorageService.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java similarity index 93% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/AbstractStorageService.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java index 7d5cf6829f4..1bd843de63b 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/AbstractStorageService.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/AbstractStorageService.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; import java.io.OutputStream; import java.util.List; @@ -10,27 +10,27 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -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.SolverInput; -import ai.timefold.solver.model.definition.api.domain.Configuration; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; -import ai.timefold.solver.model.definition.api.domain.ModelResponse; -import ai.timefold.solver.model.definition.api.log.LogInfo; -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.Issue; -import ai.timefold.solver.model.definition.api.validation.LegacyValidationResult; -import ai.timefold.solver.model.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.model.definition.impl.validation.JsonMappingError; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverInput; +import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.api.log.LogInfo; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.validation.Issue; +import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.impl.validation.JsonMappingError; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/Storage.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/Storage.java similarity index 98% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/Storage.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/Storage.java index 9980d11939b..6b233c07819 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/Storage.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/Storage.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; import java.io.OutputStream; import java.util.List; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageAddress.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageAddress.java similarity index 95% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageAddress.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageAddress.java index 6a9c41a54da..08f7a60d31a 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageAddress.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageAddress.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; /** * Provides storage address used to store user model and its sub resources in the underlying data store diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageConfiguration.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageConfiguration.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageConfiguration.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageConfiguration.java index 91447639b77..751e3ce176c 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageConfiguration.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageConfiguration.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; public class StorageConfiguration { diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageServiceBase.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageServiceBase.java similarity index 55% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageServiceBase.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageServiceBase.java index fc906506731..a2c48eb06c8 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/StorageServiceBase.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/StorageServiceBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; public sealed interface StorageServiceBase permits AbstractStorageService { } diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SubModelKind.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SubModelKind.java similarity index 94% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SubModelKind.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SubModelKind.java index b246630afd6..0d6cde676bf 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SubModelKind.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SubModelKind.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; import java.util.stream.Stream; diff --git a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SupportedStorages.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SupportedStorages.java similarity index 92% rename from model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SupportedStorages.java rename to service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SupportedStorages.java index 7c3738cf811..74dd30a9976 100644 --- a/model/definition/src/main/java/ai/timefold/solver/model/definition/internal/storage/SupportedStorages.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/storage/SupportedStorages.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.internal.storage; +package ai.timefold.solver.service.definition.internal.storage; public class SupportedStorages { diff --git a/model/definition/src/test/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfigTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java similarity index 97% rename from model/definition/src/test/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfigTest.java rename to service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java index bd8042b4f7e..c809e3209f7 100644 --- a/model/definition/src/test/java/ai/timefold/solver/model/definition/api/termination/SolverTerminationConfigTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/termination/SolverTerminationConfigTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.definition.api.termination; +package ai.timefold.solver.service.definition.api.termination; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/model/definition/src/test/java/ai/timefold/solver/model/definition/api/validation/ValidationIssueSerializationTest.java b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java similarity index 96% rename from model/definition/src/test/java/ai/timefold/solver/model/definition/api/validation/ValidationIssueSerializationTest.java rename to service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java index ab0c02d3765..e773aad982e 100644 --- a/model/definition/src/test/java/ai/timefold/solver/model/definition/api/validation/ValidationIssueSerializationTest.java +++ b/service/definition/src/test/java/ai/timefold/solver/service/definition/api/validation/ValidationIssueSerializationTest.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.definition.api.validation; +package ai.timefold.solver.service.definition.api.validation; import java.util.List; -import ai.timefold.solver.model.definition.impl.validation.AbstractLegacyIssue; +import ai.timefold.solver.service.definition.impl.validation.AbstractLegacyIssue; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/model/facade/model-parent/pom.xml b/service/facade/model-parent/pom.xml similarity index 96% rename from model/facade/model-parent/pom.xml rename to service/facade/model-parent/pom.xml index 558241d402f..a72898ffb82 100644 --- a/model/facade/model-parent/pom.xml +++ b/service/facade/model-parent/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 ai.timefold.solver - timefold-solver-model-parent + timefold-solver-service-parent ${revision} pom - (Preview) Timefold Solver Model Parent + (Preview) Timefold Solver Service Parent The Model Parent pom.xml is meant to be used by model extensions, including the default one, and non-extendable models. @@ -162,11 +162,11 @@ ai.timefold.solver - timefold-solver-model + timefold-solver-service ai.timefold.solver - timefold-solver-model-defaults + timefold-solver-service-defaults @@ -176,7 +176,7 @@ ai.timefold.solver - timefold-solver-model-test + timefold-solver-service-test test @@ -240,7 +240,7 @@ exec-maven-plugin ${version.exec.plugin} - ai.timefold.solver.model.config.ConfigDumperMain + ai.timefold.solver.service.config.ConfigDumperMain @@ -339,7 +339,7 @@ ai.timefold.solver.enterprise - timefold-solver-enterprise-model-diagnostic-tools + timefold-solver-enterprise-service-diagnostic-tools ${version.ai.timefold.solver} jar true @@ -390,36 +390,36 @@ ai.timefold.solver.enterprise - timefold-solver-enterprise-model + timefold-solver-enterprise-service ai.timefold.solver.enterprise - timefold-solver-enterprise-model-storage-fs + timefold-solver-enterprise-service-storage-fs ai.timefold.solver.enterprise - timefold-solver-enterprise-model-storage-azure + timefold-solver-enterprise-service-storage-azure ai.timefold.solver.enterprise - timefold-solver-enterprise-model-storage-gcs + timefold-solver-enterprise-service-storage-gcs ai.timefold.solver.enterprise - timefold-solver-enterprise-model-storage-s3 + timefold-solver-enterprise-service-storage-s3 ai.timefold.solver - timefold-solver-model-defaults + timefold-solver-service-defaults ai.timefold.solver.enterprise - timefold-solver-enterprise-model-defaults + timefold-solver-enterprise-service-defaults ai.timefold.solver.enterprise - timefold-solver-enterprise-model-test + timefold-solver-enterprise-service-test test @@ -728,7 +728,7 @@ ai.timefold.solver - timefold-solver-model-build-support + timefold-solver-service-build-support ${version.ai.timefold.solver} true ${ai.timefold.model.container.integration-tests.env-file-dir} @@ -791,7 +791,7 @@ ai.timefold.solver - timefold-solver-model-build-support + timefold-solver-service-build-support ${version.ai.timefold.solver} true ${ai.timefold.model.container.integration-tests.env-file-dir} @@ -869,7 +869,7 @@ ai.timefold.solver - timefold-solver-model-config + timefold-solver-service-config diff --git a/model/facade/model-with-maps/pom.xml b/service/facade/model-with-maps/pom.xml similarity index 69% rename from model/facade/model-with-maps/pom.xml rename to service/facade/model-with-maps/pom.xml index 172149a13ff..7bd499392af 100644 --- a/model/facade/model-with-maps/pom.xml +++ b/service/facade/model-with-maps/pom.xml @@ -3,13 +3,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../../pom.xml - timefold-solver-model-with-maps - (Preview) Timefold Solver Model with maps integration + timefold-solver-service-with-maps + (Preview) Timefold Solver Service with maps integration This module is a dependency aggregator for models that require maps integration. This module is in a preview state and thus is a subject to changes. @@ -18,15 +18,15 @@ ai.timefold.solver - timefold-solver-model + timefold-solver-service ai.timefold.solver - timefold-solver-model-maps-service-rest + timefold-solver-service-maps-service-rest ai.timefold.solver - timefold-solver-model-maps-service-client + timefold-solver-service-maps-service-client diff --git a/model/facade/model/pom.xml b/service/facade/model/pom.xml similarity index 71% rename from model/facade/model/pom.xml rename to service/facade/model/pom.xml index bde99e22cd9..5ee1b4e0cae 100644 --- a/model/facade/model/pom.xml +++ b/service/facade/model/pom.xml @@ -3,13 +3,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../../pom.xml - timefold-solver-model - (Preview) Timefold Solver Model dependencies + timefold-solver-service + (Preview) Timefold Solver Service dependencies This module is a dependency aggregator for models that don't require maps integration. This module is in a preview state and thus is a subject to changes. @@ -18,15 +18,15 @@ ai.timefold.solver - timefold-solver-model-rest + timefold-solver-service-rest ai.timefold.solver - timefold-solver-model-worker + timefold-solver-service-worker ai.timefold.solver - timefold-solver-model-quarkus + timefold-solver-service-quarkus ai.timefold.solver @@ -34,7 +34,7 @@ ai.timefold.solver - timefold-solver-model-defaults + timefold-solver-service-defaults diff --git a/model/jackson/pom.xml b/service/jackson/pom.xml similarity index 88% rename from model/jackson/pom.xml rename to service/jackson/pom.xml index 33f12a42190..615058070ca 100644 --- a/model/jackson/pom.xml +++ b/service/jackson/pom.xml @@ -5,13 +5,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-jackson - (Preview) Timefold Solver Model Jackson Integration + timefold-solver-service-jackson + (Preview) Timefold Solver Service Jackson Integration This module contains Jackson integration to standardize (de)serialization of common types. This module is in a preview state and thus is a subject to changes. diff --git a/model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperFactory.java b/service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperFactory.java similarity index 96% rename from model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperFactory.java rename to service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperFactory.java index eee4dbf532a..4b223d657a1 100644 --- a/model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperFactory.java +++ b/service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperFactory.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.jackson.impl; +package ai.timefold.solver.service.jackson.impl; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkObjectMapperCustomizer.java b/service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkObjectMapperCustomizer.java similarity index 97% rename from model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkObjectMapperCustomizer.java rename to service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkObjectMapperCustomizer.java index ead49a84b85..0a3268b9209 100644 --- a/model/jackson/src/main/java/ai/timefold/solver/model/jackson/impl/SdkObjectMapperCustomizer.java +++ b/service/jackson/src/main/java/ai/timefold/solver/service/jackson/impl/SdkObjectMapperCustomizer.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.jackson.impl; +package ai.timefold.solver.service.jackson.impl; import jakarta.inject.Singleton; diff --git a/model/jackson/src/test/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperTest.java b/service/jackson/src/test/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperTest.java similarity index 98% rename from model/jackson/src/test/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperTest.java rename to service/jackson/src/test/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperTest.java index 4e212dc8150..a99f6e1cf17 100644 --- a/model/jackson/src/test/java/ai/timefold/solver/model/jackson/impl/SdkBuildTimeObjectMapperTest.java +++ b/service/jackson/src/test/java/ai/timefold/solver/service/jackson/impl/SdkBuildTimeObjectMapperTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.jackson.impl; +package ai.timefold.solver.service.jackson.impl; import java.time.Duration; import java.time.OffsetDateTime; diff --git a/model/json/README.adoc b/service/json/README.adoc similarity index 99% rename from model/json/README.adoc rename to service/json/README.adoc index b37ad9642b4..d87ffc105bf 100644 --- a/model/json/README.adoc +++ b/service/json/README.adoc @@ -222,4 +222,4 @@ Removes required break (with id `cd4c29ed Lunch`) from shift (with id `cd4c29ed` ] ---- -More examples can be found in link:src/test/java/ai/timefold/solver/model/json/internal/patch[test cases] \ No newline at end of file +More examples can be found in link:src/test/java/ai/timefold/solver/service/json/internal/patch[test cases] \ No newline at end of file diff --git a/model/json/pom.xml b/service/json/pom.xml similarity index 86% rename from model/json/pom.xml rename to service/json/pom.xml index 1cc8d896d56..5d10bca7d62 100644 --- a/model/json/pom.xml +++ b/service/json/pom.xml @@ -5,13 +5,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-json - (Preview) Timefold Solver Model JSON Integration + timefold-solver-service-json + (Preview) Timefold Solver Service JSON Integration This module contains JSON validation and other JSON-related capabilities. This module is in a preview state and thus is a subject to changes. @@ -20,7 +20,7 @@ ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition io.quarkus diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/LocalDateTimeFormat.java b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/LocalDateTimeFormat.java similarity index 93% rename from model/json/src/main/java/ai/timefold/solver/model/json/api/schema/LocalDateTimeFormat.java rename to service/json/src/main/java/ai/timefold/solver/service/json/api/schema/LocalDateTimeFormat.java index cc0dfadac5b..b84272486cc 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/LocalDateTimeFormat.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/LocalDateTimeFormat.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.api.schema; +package ai.timefold.solver.service.json.api.schema; import java.time.LocalDateTime; import java.time.format.DateTimeParseException; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/OffsetDateTimeFormat.java b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/OffsetDateTimeFormat.java similarity index 94% rename from model/json/src/main/java/ai/timefold/solver/model/json/api/schema/OffsetDateTimeFormat.java rename to service/json/src/main/java/ai/timefold/solver/service/json/api/schema/OffsetDateTimeFormat.java index e9588b94a02..a182502eb66 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/OffsetDateTimeFormat.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/OffsetDateTimeFormat.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.api.schema; +package ai.timefold.solver.service.json.api.schema; import com.networknt.schema.format.AbstractFormat; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/ZoneIdFormat.java b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/ZoneIdFormat.java similarity index 93% rename from model/json/src/main/java/ai/timefold/solver/model/json/api/schema/ZoneIdFormat.java rename to service/json/src/main/java/ai/timefold/solver/service/json/api/schema/ZoneIdFormat.java index 3a2c455f6cf..594aa3c5839 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/api/schema/ZoneIdFormat.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/api/schema/ZoneIdFormat.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.api.schema; +package ai.timefold.solver.service.json.api.schema; import java.time.DateTimeException; import java.time.ZoneId; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByFilter.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByFilter.java similarity index 99% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByFilter.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByFilter.java index 0ffab8e2e81..1cbd5a12763 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByFilter.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByFilter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import java.util.List; import java.util.function.Function; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByIndex.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByIndex.java similarity index 96% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByIndex.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByIndex.java index ec5684120b0..6214ad985f0 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/AddByIndex.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/AddByIndex.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import java.util.function.Function; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/ExpressionHandler.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/ExpressionHandler.java similarity index 97% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/ExpressionHandler.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/ExpressionHandler.java index 3a5789b8607..d9a98a0367a 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/ExpressionHandler.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/ExpressionHandler.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import com.fasterxml.jackson.databind.JsonNode; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/JsonPatchConstants.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/JsonPatchConstants.java similarity index 87% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/JsonPatchConstants.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/JsonPatchConstants.java index 4a70ffa43e3..7f24b2a4afb 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/JsonPatchConstants.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/JsonPatchConstants.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import java.util.regex.Pattern; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByFilter.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByFilter.java similarity index 99% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByFilter.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByFilter.java index 9990d2eaef1..9670581562a 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByFilter.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByFilter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import java.util.ArrayList; import java.util.List; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByIndex.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByIndex.java similarity index 96% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByIndex.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByIndex.java index eda412df859..db87451453d 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/patch/RemoveByIndex.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/patch/RemoveByIndex.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.patch; +package ai.timefold.solver.service.json.impl.patch; import java.util.function.Function; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/JsonSchemaValidatorConfig.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/JsonSchemaValidatorConfig.java similarity index 96% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/JsonSchemaValidatorConfig.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/JsonSchemaValidatorConfig.java index 6be623031ee..b5bf4c4e0e9 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/JsonSchemaValidatorConfig.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/JsonSchemaValidatorConfig.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.json.impl.schema; +package ai.timefold.solver.service.json.impl.schema; -import ai.timefold.solver.model.json.impl.schema.ext.UniqueItemsValidatorWithProperty; +import ai.timefold.solver.service.json.impl.schema.ext.UniqueItemsValidatorWithProperty; import com.networknt.schema.AdditionalPropertiesValidator; import com.networknt.schema.AllOfValidator; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java similarity index 97% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java index c0d956fa754..8b1049af682 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsValidatorWithProperty.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.schema.ext; +package ai.timefold.solver.service.json.impl.schema.ext; import java.util.Collections; import java.util.HashSet; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java similarity index 94% rename from model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java rename to service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java index 45ceb97249a..86895ece63e 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/impl/schema/ext/UniqueItemsWithPropertyKeyword.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.impl.schema.ext; +package ai.timefold.solver.service.json.impl.schema.ext; import com.fasterxml.jackson.databind.JsonNode; import com.networknt.schema.AbstractKeyword; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/internal/patch/JsonPatch.java b/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java similarity index 94% rename from model/json/src/main/java/ai/timefold/solver/model/json/internal/patch/JsonPatch.java rename to service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java index f46c7900e04..f897dc99a8b 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/internal/patch/JsonPatch.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/internal/patch/JsonPatch.java @@ -1,14 +1,14 @@ -package ai.timefold.solver.model.json.internal.patch; +package ai.timefold.solver.service.json.internal.patch; import java.util.function.Function; import java.util.regex.Matcher; -import ai.timefold.solver.model.definition.api.ModelInputPatchOp; -import ai.timefold.solver.model.json.impl.patch.AddByFilter; -import ai.timefold.solver.model.json.impl.patch.AddByIndex; -import ai.timefold.solver.model.json.impl.patch.JsonPatchConstants; -import ai.timefold.solver.model.json.impl.patch.RemoveByFilter; -import ai.timefold.solver.model.json.impl.patch.RemoveByIndex; +import ai.timefold.solver.service.definition.api.ModelInputPatchOp; +import ai.timefold.solver.service.json.impl.patch.AddByFilter; +import ai.timefold.solver.service.json.impl.patch.AddByIndex; +import ai.timefold.solver.service.json.impl.patch.JsonPatchConstants; +import ai.timefold.solver.service.json.impl.patch.RemoveByFilter; +import ai.timefold.solver.service.json.impl.patch.RemoveByIndex; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaDesc.java b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaDesc.java similarity index 70% rename from model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaDesc.java rename to service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaDesc.java index c6567a156f4..cd313d3f3e2 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaDesc.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaDesc.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.internal.schema; +package ai.timefold.solver.service.json.internal.schema; import java.io.InputStream; import java.util.Set; diff --git a/model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaValidator.java b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java similarity index 94% rename from model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaValidator.java rename to service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java index 3058a8a00c3..333854f146e 100644 --- a/model/json/src/main/java/ai/timefold/solver/model/json/internal/schema/JsonSchemaValidator.java +++ b/service/json/src/main/java/ai/timefold/solver/service/json/internal/schema/JsonSchemaValidator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.internal.schema; +package ai.timefold.solver.service.json.internal.schema; import java.io.IOException; import java.io.InputStream; @@ -12,11 +12,11 @@ import jakarta.annotation.PostConstruct; import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.model.definition.api.validation.Validator; -import ai.timefold.solver.model.json.api.schema.LocalDateTimeFormat; -import ai.timefold.solver.model.json.api.schema.OffsetDateTimeFormat; -import ai.timefold.solver.model.json.api.schema.ZoneIdFormat; -import ai.timefold.solver.model.json.impl.schema.ext.UniqueItemsWithPropertyKeyword; +import ai.timefold.solver.service.definition.api.validation.Validator; +import ai.timefold.solver.service.json.api.schema.LocalDateTimeFormat; +import ai.timefold.solver.service.json.api.schema.OffsetDateTimeFormat; +import ai.timefold.solver.service.json.api.schema.ZoneIdFormat; +import ai.timefold.solver.service.json.impl.schema.ext.UniqueItemsWithPropertyKeyword; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; diff --git a/model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/EmployeeSchedulingJsonPatchTest.java b/service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/EmployeeSchedulingJsonPatchTest.java similarity index 84% rename from model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/EmployeeSchedulingJsonPatchTest.java rename to service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/EmployeeSchedulingJsonPatchTest.java index f42e37680f9..b8ecfca07b1 100644 --- a/model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/EmployeeSchedulingJsonPatchTest.java +++ b/service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/EmployeeSchedulingJsonPatchTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.internal.patch; +package ai.timefold.solver.service.json.internal.patch; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertIterableEquals; @@ -33,7 +33,8 @@ public void testAddEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -58,7 +59,8 @@ public void testAddContractToEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -85,7 +87,8 @@ public void testAddUnavailableTimeSpansToEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -108,7 +111,8 @@ public void testRemoveContractFromEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -131,7 +135,8 @@ public void testRemoveContractFromEmployeeByName() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -154,7 +159,8 @@ public void testAddSkillEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -181,7 +187,8 @@ public void testAddSkillEmployeeNotExisting() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -206,7 +213,8 @@ public void testAddPreferedTimeSpanForEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -230,7 +238,8 @@ public void testRemoveSkillFromEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -254,7 +263,8 @@ public void testRemoveSkillFromEmployeeBySkillId() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -278,7 +288,8 @@ public void testReplaceSkillEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -304,7 +315,8 @@ public void testReplaceTimeZoneForEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -328,7 +340,8 @@ public void testRemoveEmployeeWithSkill() throws IOException { """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -347,7 +360,8 @@ public void testRemoveEmployeeWithId() throws IOException { """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -367,7 +381,8 @@ public void testRemoveEmployeeByIndex() throws IOException { """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfEmployees = modelInput.get("employees").size(); @@ -397,7 +412,8 @@ public void testAddShift() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); @@ -421,7 +437,8 @@ public void testAddTagToShift() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); @@ -446,7 +463,8 @@ public void testAddTagToEmployee() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("employees").size(); @@ -481,7 +499,8 @@ public void testAddRequiredSkillsToShift() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); @@ -506,7 +525,8 @@ public void testRemoveRequiredSkillsFromShift() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); @@ -529,7 +549,8 @@ public void testRemoveRequiredSkillsFromShiftByName() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); @@ -552,7 +573,8 @@ public void testRemoveShiftById() throws IOException { ] """; JsonNode modelInput = mapper.readTree( - this.getClass().getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json")); + this.getClass() + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json")); int numberOfShifts = modelInput.get("shifts").size(); diff --git a/model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/FieldServiceRoutingJsonPatchTest.java b/service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/FieldServiceRoutingJsonPatchTest.java similarity index 95% rename from model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/FieldServiceRoutingJsonPatchTest.java rename to service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/FieldServiceRoutingJsonPatchTest.java index 015ea58ca98..e662aeae8b1 100644 --- a/model/json/src/test/java/ai/timefold/solver/model/json/internal/patch/FieldServiceRoutingJsonPatchTest.java +++ b/service/json/src/test/java/ai/timefold/solver/service/json/internal/patch/FieldServiceRoutingJsonPatchTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.internal.patch; +package ai.timefold.solver.service.json.internal.patch; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -68,7 +68,7 @@ public void testAddVehicle() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -128,7 +128,7 @@ public void testAddShiftToVehicle() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -154,7 +154,7 @@ public void testAddTagToVehicleByShiftIndex() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -181,7 +181,7 @@ public void testAddTagToVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -212,7 +212,7 @@ public void testAddSkillToVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -244,7 +244,7 @@ public void testReplaceSkillsForVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -288,7 +288,7 @@ public void testReplaceRequiredBreaksForVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -315,7 +315,7 @@ public void testRemoveRequiredBreaksForVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -340,7 +340,7 @@ public void testRemoveRequiredBreaksForVehicleByShiftIdIndex() throws IOExceptio JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -365,7 +365,7 @@ public void testRemoveShiftForVehicleByShiftId() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -390,7 +390,7 @@ public void testRemoveShiftForVehicleByIndex() throws IOException { JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVehicles = modelInput.get("vehicles").size(); @@ -435,7 +435,7 @@ public void testAddVisit() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -464,7 +464,7 @@ public void testAddVisitsRequiredSkill() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -490,7 +490,7 @@ public void testRemoveVisitsRequiredSkill() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -514,7 +514,7 @@ public void testRemoveVisitsById() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -558,7 +558,7 @@ public void testReplaceVisitsById() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -606,7 +606,7 @@ public void testReplaceVisitsByIndex() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -632,7 +632,7 @@ public void testReplaceVisitsPriorityById() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -660,7 +660,7 @@ public void testReplaceVisitsLocationById() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -686,7 +686,7 @@ public void testReplaceVisitsPinnedResourceByPriority() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisits = modelInput.get("visits").size(); @@ -742,7 +742,7 @@ public void testAddVisitGroup() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -790,7 +790,7 @@ public void testAddVisitToVisitGroup() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -840,7 +840,7 @@ public void testReplaceVisitFromVisitGroup() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -867,7 +867,7 @@ public void testRemoveVisitFromVisitGroup() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -892,7 +892,7 @@ public void testRemoveSkill() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -916,7 +916,7 @@ public void testAddSkill() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); int numberOfVisitGroups = modelInput.get("visitGroups").size(); @@ -940,7 +940,7 @@ public void testAddFreezeDeparturesBeforeTime() throws IOException { """; JsonNode modelInput = mapper .readTree(this.getClass() - .getResourceAsStream("/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json")); + .getResourceAsStream("/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json")); JsonNode modelInputPatched = JsonPatch.apply((ArrayNode) mapper.readTree(patch), modelInput); diff --git a/model/json/src/test/java/ai/timefold/solver/model/json/internal/schema/ValidatorTest.java b/service/json/src/test/java/ai/timefold/solver/service/json/internal/schema/ValidatorTest.java similarity index 97% rename from model/json/src/test/java/ai/timefold/solver/model/json/internal/schema/ValidatorTest.java rename to service/json/src/test/java/ai/timefold/solver/service/json/internal/schema/ValidatorTest.java index d46f4726535..c5fa1a31a62 100644 --- a/model/json/src/test/java/ai/timefold/solver/model/json/internal/schema/ValidatorTest.java +++ b/service/json/src/test/java/ai/timefold/solver/service/json/internal/schema/ValidatorTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.json.internal.schema; +package ai.timefold.solver.service.json.internal.schema; import static org.assertj.core.api.Assertions.assertThat; diff --git a/model/json/src/test/resources/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json b/service/json/src/test/resources/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json similarity index 100% rename from model/json/src/test/resources/ai/timefold/solver/model/json/internal/patch/CONTRACT_RULES_input.json rename to service/json/src/test/resources/ai/timefold/solver/service/json/internal/patch/CONTRACT_RULES_input.json diff --git a/model/json/src/test/resources/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json b/service/json/src/test/resources/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json similarity index 100% rename from model/json/src/test/resources/ai/timefold/solver/model/json/internal/patch/VISIT_GROUP_input.json rename to service/json/src/test/resources/ai/timefold/solver/service/json/internal/patch/VISIT_GROUP_input.json diff --git a/model/maps/api/pom.xml b/service/maps/api/pom.xml similarity index 80% rename from model/maps/api/pom.xml rename to service/maps/api/pom.xml index 065c9ccf917..7afe1f7d655 100644 --- a/model/maps/api/pom.xml +++ b/service/maps/api/pom.xml @@ -5,17 +5,17 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-api - (Preview) Timefold Solver Model Maps API + timefold-solver-service-maps-api + (Preview) Timefold Solver Service Maps API ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/DistanceMatrix.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/DistanceMatrix.java similarity index 95% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/DistanceMatrix.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/DistanceMatrix.java index 7240ed9905b..2b392273a87 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/DistanceMatrix.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/DistanceMatrix.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.maps.api; +package ai.timefold.solver.service.maps.api; import java.util.Arrays; import java.util.List; import java.util.Map; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.impl.LongArrayDistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.impl.LongArrayDistanceMatrix; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/IndexableDistanceMatrix.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/IndexableDistanceMatrix.java similarity index 88% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/IndexableDistanceMatrix.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/IndexableDistanceMatrix.java index abecf397fa8..aaa36af5692 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/IndexableDistanceMatrix.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/IndexableDistanceMatrix.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.api; +package ai.timefold.solver.service.maps.api; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; /** * Represents a specific {@link DistanceMatrix} that supports using a {@link Location} index cache to enhance performance. diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/LocationDeduplicator.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/LocationDeduplicator.java similarity index 91% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/LocationDeduplicator.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/LocationDeduplicator.java index 0e212c6458f..56a31af4f69 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/LocationDeduplicator.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/LocationDeduplicator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.api; +package ai.timefold.solver.service.maps.api; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -6,7 +6,7 @@ import java.util.Map; import java.util.function.Function; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; /** * Deduplicates {@link Location} instances to ensure that only one instance of a specific diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulator.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulator.java similarity index 92% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulator.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulator.java index d0691381bdd..57f49b97eeb 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulator.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.api; +package ai.timefold.solver.service.maps.api; import java.util.ArrayList; import java.util.Collections; @@ -7,7 +7,7 @@ import java.util.List; import java.util.Set; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; /** * Accumulates {@link Location}s while checking for duplicates. diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Location.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Location.java similarity index 95% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Location.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Location.java index 1a99ffc2f7b..c9c7e9c1685 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Location.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Location.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.maps.api.model; +package ai.timefold.solver.service.maps.api.model; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; -import ai.timefold.solver.model.maps.api.DistanceMatrix; -import ai.timefold.solver.model.maps.api.IndexableDistanceMatrix; -import ai.timefold.solver.model.maps.api.model.travel.TravelDistance; -import ai.timefold.solver.model.maps.api.model.travel.TravelTime; +import ai.timefold.solver.service.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.IndexableDistanceMatrix; +import ai.timefold.solver.service.maps.api.model.travel.TravelDistance; +import ai.timefold.solver.service.maps.api.model.travel.TravelTime; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Waypoints.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Waypoints.java similarity index 84% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Waypoints.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Waypoints.java index 1f1499143df..7525d217e73 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/Waypoints.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/Waypoints.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.api.model; +package ai.timefold.solver.service.maps.api.model; import java.util.List; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelDistance.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelDistance.java similarity index 94% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelDistance.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelDistance.java index a6761b8cf29..dc5ff344ed5 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelDistance.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelDistance.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.api.model.travel; +package ai.timefold.solver.service.maps.api.model.travel; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import org.jspecify.annotations.NullMarked; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelTime.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelTime.java similarity index 97% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelTime.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelTime.java index 0421c7b70f5..cdf2859d191 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/api/model/travel/TravelTime.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/api/model/travel/TravelTime.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.maps.api.model.travel; +package ai.timefold.solver.service.maps.api.model.travel; import java.time.OffsetDateTime; import java.util.Objects; import java.util.function.LongUnaryOperator; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LocationKeyDeserializer.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LocationKeyDeserializer.java similarity index 87% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LocationKeyDeserializer.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LocationKeyDeserializer.java index 054f99b0dca..727d5066861 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LocationKeyDeserializer.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LocationKeyDeserializer.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.impl; +package ai.timefold.solver.service.maps.impl; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.KeyDeserializer; diff --git a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrix.java b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrix.java similarity index 98% rename from model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrix.java rename to service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrix.java index 5bfd5e6914c..d45958958e1 100644 --- a/model/maps/api/src/main/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrix.java +++ b/service/maps/api/src/main/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrix.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.impl; +package ai.timefold.solver.service.maps.impl; import java.util.Arrays; import java.util.HashMap; @@ -6,8 +6,8 @@ import java.util.Map; import java.util.Set; -import ai.timefold.solver.model.maps.api.IndexableDistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.IndexableDistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; diff --git a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulatorTest.java b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulatorTest.java similarity index 95% rename from model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulatorTest.java rename to service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulatorTest.java index a80a62e3562..70bf4cb5121 100644 --- a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/UniqueLocationAccumulatorTest.java +++ b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/UniqueLocationAccumulatorTest.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.maps.api; +package ai.timefold.solver.service.maps.api; import static org.assertj.core.api.Assertions.assertThat; import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import org.junit.jupiter.api.Test; diff --git a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/model/travel/TravelTimeTest.java b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/model/travel/TravelTimeTest.java similarity index 96% rename from model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/model/travel/TravelTimeTest.java rename to service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/model/travel/TravelTimeTest.java index b0be080b581..dffe2e088f8 100644 --- a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/api/model/travel/TravelTimeTest.java +++ b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/api/model/travel/TravelTimeTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.api.model.travel; +package ai.timefold.solver.service.maps.api.model.travel; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrixTest.java b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrixTest.java similarity index 98% rename from model/maps/api/src/test/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrixTest.java rename to service/maps/api/src/test/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrixTest.java index a3601ff9732..b843f993050 100644 --- a/model/maps/api/src/test/java/ai/timefold/solver/model/maps/impl/LongArrayDistanceMatrixTest.java +++ b/service/maps/api/src/test/java/ai/timefold/solver/service/maps/impl/LongArrayDistanceMatrixTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.impl; +package ai.timefold.solver.service.maps.impl; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; @@ -7,8 +7,8 @@ import java.util.List; import java.util.function.DoubleFunction; -import ai.timefold.solver.model.maps.api.IndexableDistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.IndexableDistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; import org.junit.jupiter.api.Test; diff --git a/model/maps/haversine/pom.xml b/service/maps/haversine/pom.xml similarity index 78% rename from model/maps/haversine/pom.xml rename to service/maps/haversine/pom.xml index 600b2ab6914..9d92d24c7b3 100644 --- a/model/maps/haversine/pom.xml +++ b/service/maps/haversine/pom.xml @@ -5,17 +5,17 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-haversine - (Preview) Timefold Solver Model Maps Haversine + timefold-solver-service-maps-haversine + (Preview) Timefold Solver Service Maps Haversine ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration io.quarkus diff --git a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineProviderIdentification.java b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineProviderIdentification.java similarity index 59% rename from model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineProviderIdentification.java rename to service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineProviderIdentification.java index 79d7724d926..e35b99af0fa 100644 --- a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineProviderIdentification.java +++ b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineProviderIdentification.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; -import ai.timefold.solver.model.maps.service.integration.internal.provider.ProviderIdentifier; +import ai.timefold.solver.service.maps.service.integration.internal.provider.ProviderIdentifier; public abstract class HaversineProviderIdentification implements ProviderIdentifier { diff --git a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java similarity index 88% rename from model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java rename to service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java index 14525f373b1..b00d9f93254 100644 --- a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java +++ b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProvider.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; import java.io.ByteArrayInputStream; import java.util.Collection; @@ -11,13 +11,13 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.maps.api.DistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; -import ai.timefold.solver.model.maps.service.integration.internal.provider.TravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.service.integration.internal.provider.TravelTimeAndDistanceMatrixResponse; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.service.integration.internal.provider.TravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.service.integration.internal.provider.TravelTimeAndDistanceMatrixResponse; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProvider.java b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProvider.java similarity index 64% rename from model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProvider.java rename to service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProvider.java index 7022bfc261f..fd1c539eac9 100644 --- a/model/maps/haversine/src/main/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProvider.java +++ b/service/maps/haversine/src/main/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProvider.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; import java.util.List; import java.util.Map; import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.provider.WaypointsProvider; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.provider.WaypointsProvider; @ApplicationScoped public class HaversineWaypointsProvider extends HaversineProviderIdentification implements WaypointsProvider { diff --git a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java similarity index 94% rename from model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java rename to service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java index af59cae568f..af6e20fd615 100644 --- a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java +++ b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineTravelTimeAndDistanceMatrixProviderTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; @@ -6,7 +6,7 @@ import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import org.junit.jupiter.api.Test; diff --git a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProviderTest.java b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProviderTest.java similarity index 87% rename from model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProviderTest.java rename to service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProviderTest.java index bbd59138743..ec8eca18b77 100644 --- a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/HaversineWaypointsProviderTest.java +++ b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/HaversineWaypointsProviderTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; import java.util.Collection; import java.util.Collections; @@ -6,7 +6,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java similarity index 88% rename from model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java rename to service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java index ef2e707cecf..b50bd7a274a 100644 --- a/model/maps/haversine/src/test/java/ai/timefold/solver/model/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java +++ b/service/maps/haversine/src/test/java/ai/timefold/solver/service/maps/haversine/impl/TravelTimeAndDistanceMatrixTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.haversine.impl; +package ai.timefold.solver.service.maps.haversine.impl; import static org.assertj.core.api.Assertions.assertThat; @@ -8,8 +8,8 @@ import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; import org.junit.jupiter.api.Test; diff --git a/model/maps/pom.xml b/service/maps/pom.xml similarity index 80% rename from model/maps/pom.xml rename to service/maps/pom.xml index 8260ea106aa..edd6f089dbd 100644 --- a/model/maps/pom.xml +++ b/service/maps/pom.xml @@ -4,13 +4,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-maps + timefold-solver-service-maps pom - (Preview) Timefold Solver Model Maps integration + (Preview) Timefold Solver Service Maps integration This module contains maps integration. This module is in a preview state and thus is a subject to changes. diff --git a/model/maps/service-client/pom.xml b/service/maps/service-client/pom.xml similarity index 80% rename from model/maps/service-client/pom.xml rename to service/maps/service-client/pom.xml index 09914f5f215..495a0eaeaba 100644 --- a/model/maps/service-client/pom.xml +++ b/service/maps/service-client/pom.xml @@ -5,21 +5,21 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-service-client - (Preview) Timefold Solver Model Maps Service Client + timefold-solver-service-maps-service-client + (Preview) Timefold Solver Service Maps Service Client ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration ai.timefold.solver - timefold-solver-model-maps-haversine + timefold-solver-service-maps-haversine io.quarkus @@ -39,7 +39,7 @@ ai.timefold.solver - timefold-solver-model-maps-service-test + timefold-solver-service-maps-service-test test diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/MapService.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/MapService.java similarity index 58% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/MapService.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/MapService.java index 1d63318c0ca..d60d18857d3 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/MapService.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/MapService.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.client.api; +package ai.timefold.solver.service.maps.service.client.api; import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; public interface MapService { diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricher.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java similarity index 77% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricher.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java index 53625edd67f..158a4e8e806 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricher.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.api; +package ai.timefold.solver.service.maps.service.client.api; import java.time.temporal.ChronoUnit; import java.util.Collections; @@ -7,16 +7,16 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnricher; -import ai.timefold.solver.model.definition.internal.MapEnrichmentContext; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.client.impl.MapServiceOptionsSupplier; -import ai.timefold.solver.model.maps.service.client.impl.error.MapServiceIllegalArgumentException; -import ai.timefold.solver.model.maps.service.integration.api.LocationsAwareSolverModel; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverterException; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.client.impl.MapServiceOptionsSupplier; +import ai.timefold.solver.service.maps.service.client.impl.error.MapServiceIllegalArgumentException; +import ai.timefold.solver.service.maps.service.integration.api.LocationsAwareSolverModel; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverterException; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; import org.eclipse.microprofile.faulttolerance.Retry; import org.slf4j.Logger; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/CacheItem.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/CacheItem.java new file mode 100644 index 00000000000..aa1ecdf71dd --- /dev/null +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/CacheItem.java @@ -0,0 +1,11 @@ +package ai.timefold.solver.service.maps.service.client.impl; + +import java.util.List; + +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; + +public record CacheItem(TravelTimeAndDistance travelTimeAndDistance, List locations, String hash, + List locationsOutOfMap, String resolvedMapLocation) { + +} diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClient.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClient.java new file mode 100644 index 00000000000..bce5c2dc192 --- /dev/null +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClient.java @@ -0,0 +1,15 @@ +package ai.timefold.solver.service.maps.service.client.impl; + +import ai.timefold.solver.service.maps.service.client.impl.error.MapServiceExceptionMapper; +import ai.timefold.solver.service.maps.service.integration.internal.MapManagementApi; +import ai.timefold.solver.service.maps.service.integration.internal.MapServiceApi; +import ai.timefold.solver.service.maps.service.integration.internal.MapServiceHealthCheckApi; + +import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +@RegisterRestClient(configKey = "map-service") +@RegisterProvider(MapServiceExceptionMapper.class) +public interface MapServiceClient extends MapServiceApi, MapServiceHealthCheckApi, MapManagementApi { + +} diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClientImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java similarity index 91% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClientImpl.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java index d279121dd65..2e460aa5244 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceClientImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceClientImpl.java @@ -1,14 +1,14 @@ -package ai.timefold.solver.model.maps.service.client.impl; - -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_CACHE_ID; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_INVALIDATE_MATRIX_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATION_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; -import static ai.timefold.solver.model.definition.internal.Headers.X_TENANT_ID_HEADER; +package ai.timefold.solver.service.maps.service.client.impl; + +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_CACHE_ID; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_INVALIDATE_MATRIX_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATION_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_TENANT_ID_HEADER; import java.io.IOException; import java.io.InputStream; @@ -26,17 +26,17 @@ import jakarta.inject.Inject; import jakarta.ws.rs.core.Response; -import ai.timefold.solver.model.maps.api.DistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.haversine.impl.HaversineWaypointsProvider; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.client.impl.error.GoneRuntimeException; -import ai.timefold.solver.model.maps.service.integration.internal.MapServiceOptions; -import ai.timefold.solver.model.maps.service.integration.internal.model.IllegalDistanceResponseException; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.haversine.impl.HaversineWaypointsProvider; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.client.impl.error.GoneRuntimeException; +import ai.timefold.solver.service.maps.service.integration.internal.MapServiceOptions; +import ai.timefold.solver.service.maps.service.integration.internal.model.IllegalDistanceResponseException; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceLocalHaversineImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceLocalHaversineImpl.java similarity index 66% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceLocalHaversineImpl.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceLocalHaversineImpl.java index 4067d5d42bb..8a4893cc46d 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceLocalHaversineImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceLocalHaversineImpl.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.util.ArrayList; import java.util.Collections; @@ -6,13 +6,13 @@ import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.haversine.impl.HaversineWaypointsProvider; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; -import ai.timefold.solver.model.maps.service.integration.internal.provider.WaypointsProvider; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.haversine.impl.HaversineWaypointsProvider; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.maps.service.integration.internal.provider.WaypointsProvider; public class MapServiceLocalHaversineImpl implements MapService { diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceOptionsSupplier.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceOptionsSupplier.java similarity index 95% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceOptionsSupplier.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceOptionsSupplier.java index 90edb368fc2..3e69b006996 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceOptionsSupplier.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceOptionsSupplier.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.util.Optional; import java.util.stream.Collectors; @@ -6,7 +6,7 @@ import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.model.maps.service.integration.internal.MapServiceOptions; +import ai.timefold.solver.service.maps.service.integration.internal.MapServiceOptions; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceProducer.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceProducer.java similarity index 83% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceProducer.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceProducer.java index f2542b1091c..932edcc2a34 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/MapServiceProducer.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/MapServiceProducer.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.util.List; import java.util.Optional; @@ -7,10 +7,10 @@ import jakarta.enterprise.inject.Produces; import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.haversine.impl.HaversineWaypointsProvider; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.haversine.impl.HaversineWaypointsProvider; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/SingleItemCache.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/SingleItemCache.java similarity index 86% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/SingleItemCache.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/SingleItemCache.java index feda4e35a51..accf5229572 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/SingleItemCache.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/SingleItemCache.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; public class SingleItemCache { diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImpl.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java similarity index 80% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImpl.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java index d26415a398b..2a007a4da71 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImpl.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImpl.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.time.temporal.ChronoUnit; import java.util.Collection; @@ -13,21 +13,21 @@ import jakarta.enterprise.inject.Instance; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.definition.internal.events.BestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.FinalBestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.SolverChannels; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.api.model.Waypoints; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.client.impl.error.MapServiceIllegalArgumentException; -import ai.timefold.solver.model.maps.service.integration.api.WaypointsExtractor; -import ai.timefold.solver.model.maps.service.integration.api.WaypointsExtractorBase; -import ai.timefold.solver.model.maps.service.integration.impl.WaypointsService; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.SolverChannels; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.client.impl.error.MapServiceIllegalArgumentException; +import ai.timefold.solver.service.maps.service.integration.api.WaypointsExtractor; +import ai.timefold.solver.service.maps.service.integration.api.WaypointsExtractorBase; +import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; import org.eclipse.microprofile.faulttolerance.Retry; import org.eclipse.microprofile.reactive.messaging.Incoming; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/GoneRuntimeException.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/GoneRuntimeException.java similarity index 57% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/GoneRuntimeException.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/GoneRuntimeException.java index 5b03c4b85d4..b98d3b092c5 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/GoneRuntimeException.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/GoneRuntimeException.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.service.client.impl.error; +package ai.timefold.solver.service.maps.service.client.impl.error; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; public class GoneRuntimeException extends TimefoldRuntimeException { public GoneRuntimeException(String code, String message, boolean recoverable) { diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceExceptionMapper.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java similarity index 84% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceExceptionMapper.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java index 9bddcbdd3a7..0960775f5fe 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceExceptionMapper.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceExceptionMapper.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.maps.service.client.impl.error; +package ai.timefold.solver.service.maps.service.client.impl.error; import jakarta.ws.rs.core.Response; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.eclipse.microprofile.rest.client.ext.ResponseExceptionMapper; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceIllegalArgumentException.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceIllegalArgumentException.java similarity index 60% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceIllegalArgumentException.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceIllegalArgumentException.java index 135e5115ced..dab5585d291 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/error/MapServiceIllegalArgumentException.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/error/MapServiceIllegalArgumentException.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.service.client.impl.error; +package ai.timefold.solver.service.maps.service.client.impl.error; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; public class MapServiceIllegalArgumentException extends TimefoldRuntimeException { public MapServiceIllegalArgumentException(String code, String message, boolean recoverable) { diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceAvailabilityProbe.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceAvailabilityProbe.java similarity index 93% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceAvailabilityProbe.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceAvailabilityProbe.java index 014fe72d590..3143408cc3e 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceAvailabilityProbe.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceAvailabilityProbe.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.maps.service.client.impl.health; +package ai.timefold.solver.service.maps.service.client.impl.health; import java.util.Optional; import jakarta.enterprise.event.Observes; import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.service.client.impl.MapServiceClient; +import ai.timefold.solver.service.maps.service.client.impl.MapServiceClient; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheck.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheck.java similarity index 93% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheck.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheck.java index d732a63e243..e958aaeb25e 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheck.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheck.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl.health; +package ai.timefold.solver.service.maps.service.client.impl.health; import jakarta.inject.Inject; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheckProducer.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheckProducer.java similarity index 93% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheckProducer.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheckProducer.java index 56f309fffdc..3f59ddaa827 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/health/MapServiceHealthCheckProducer.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/health/MapServiceHealthCheckProducer.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl.health; +package ai.timefold.solver.service.maps.service.client.impl.health; import jakarta.enterprise.context.Dependent; import jakarta.enterprise.inject.Produces; diff --git a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java similarity index 70% rename from model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java rename to service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java index 170a5f33a06..64c4bb988e7 100644 --- a/model/maps/service-client/src/main/java/ai/timefold/solver/model/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/processors/SaveWaypointsPostProcessor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl.processors; +package ai.timefold.solver.service.maps.service.client.impl.processors; import java.util.List; import java.util.Set; @@ -7,12 +7,12 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.ModelOutput; -import ai.timefold.solver.model.definition.api.ModelPostProcessor; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.model.maps.api.model.Waypoints; -import ai.timefold.solver.model.maps.service.integration.impl.WaypointsService; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.ModelPostProcessor; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; @Priority(value = jakarta.interceptor.Interceptor.Priority.APPLICATION) @ApplicationScoped diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricherTest.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java similarity index 91% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricherTest.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java index 26cab66b5f3..70c5d8ffa25 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/api/TravelTimeMatrixEnricherTest.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.api; +package ai.timefold.solver.service.maps.service.client.api; import java.util.ArrayList; import java.util.List; @@ -6,16 +6,16 @@ import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.MapEnrichmentContext; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.api.model.travel.TravelDistance; -import ai.timefold.solver.model.maps.api.model.travel.TravelTime; -import ai.timefold.solver.model.maps.service.client.util.RemoteMapServiceConfigurationProfile; -import ai.timefold.solver.model.maps.service.client.util.SampleModel; -import ai.timefold.solver.model.maps.service.integration.api.LocationsAwareSolverModel; -import ai.timefold.solver.model.maps.service.test.api.MapServiceApiWiremockExtensions; -import ai.timefold.solver.model.maps.service.test.impl.DistanceGetUpdateResponseTransformer; -import ai.timefold.solver.model.maps.service.test.impl.HaversineDistanceResponseTransformer; +import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.travel.TravelDistance; +import ai.timefold.solver.service.maps.api.model.travel.TravelTime; +import ai.timefold.solver.service.maps.service.client.util.RemoteMapServiceConfigurationProfile; +import ai.timefold.solver.service.maps.service.client.util.SampleModel; +import ai.timefold.solver.service.maps.service.integration.api.LocationsAwareSolverModel; +import ai.timefold.solver.service.maps.service.test.api.MapServiceApiWiremockExtensions; +import ai.timefold.solver.service.maps.service.test.impl.DistanceGetUpdateResponseTransformer; +import ai.timefold.solver.service.maps.service.test.impl.HaversineDistanceResponseTransformer; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java similarity index 91% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java index 57cd01bbb90..68b58c5b9f0 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/HaversineTravelTimeAndDistanceConverter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.io.IOException; import java.io.InputStream; @@ -10,14 +10,14 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.maps.api.DistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.IllegalDistanceResponseException; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverterException; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.IllegalDistanceResponseException; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverterException; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImplTest.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java similarity index 90% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImplTest.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java index 6eca82a351b..ffe917d719c 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/impl/WaypointsServiceImplTest.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/impl/WaypointsServiceImplTest.java @@ -1,20 +1,20 @@ -package ai.timefold.solver.model.maps.service.client.impl; +package ai.timefold.solver.service.maps.service.client.impl; import java.util.List; import java.util.Set; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.internal.events.BestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.FinalBestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.api.model.Waypoints; -import ai.timefold.solver.model.maps.service.client.util.MapServiceInvocationCounter; -import ai.timefold.solver.model.maps.service.client.util.RemoteMapServiceConfigurationProfile; -import ai.timefold.solver.model.maps.service.client.util.SampleModel; -import ai.timefold.solver.model.maps.service.test.api.MapServiceApiWiremockExtensions; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.service.client.util.MapServiceInvocationCounter; +import ai.timefold.solver.service.maps.service.client.util.RemoteMapServiceConfigurationProfile; +import ai.timefold.solver.service.maps.service.client.util.SampleModel; +import ai.timefold.solver.service.maps.service.test.api.MapServiceApiWiremockExtensions; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java new file mode 100644 index 00000000000..1c5580ae5b8 --- /dev/null +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelInput.java @@ -0,0 +1,6 @@ +package ai.timefold.solver.service.maps.service.client.util; + +import ai.timefold.solver.service.definition.api.ModelInput; + +public class DummyModelInput implements ModelInput { +} diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java new file mode 100644 index 00000000000..476ef6aec7a --- /dev/null +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyModelOutput.java @@ -0,0 +1,6 @@ +package ai.timefold.solver.service.maps.service.client.util; + +import ai.timefold.solver.service.definition.api.ModelOutput; + +public class DummyModelOutput implements ModelOutput { +} diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyStorageService.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java similarity index 59% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyStorageService.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java index e90dba1ceff..17ab787a3e5 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyStorageService.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyStorageService.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.score.SimpleScore; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelConstraintJustification; -import ai.timefold.solver.model.definition.api.domain.Configuration; -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; -import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics; -import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyWaypointsExtractor.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyWaypointsExtractor.java similarity index 80% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyWaypointsExtractor.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyWaypointsExtractor.java index 8c6f665b894..7acb0920442 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/DummyWaypointsExtractor.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/DummyWaypointsExtractor.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.ArrayList; import java.util.List; import jakarta.enterprise.context.Dependent; -import ai.timefold.solver.model.maps.api.model.Waypoints; -import ai.timefold.solver.model.maps.service.integration.api.WaypointsExtractor; +import ai.timefold.solver.service.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.service.integration.api.WaypointsExtractor; @Dependent public class DummyWaypointsExtractor implements WaypointsExtractor { diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceInvocationCounter.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceInvocationCounter.java similarity index 89% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceInvocationCounter.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceInvocationCounter.java index 9c331dfb6b5..e2083eb4dfb 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceInvocationCounter.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceInvocationCounter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.concurrent.atomic.AtomicInteger; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceTestWrapper.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceTestWrapper.java similarity index 77% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceTestWrapper.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceTestWrapper.java index 970e172bc3c..54f358e91d9 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceTestWrapper.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceTestWrapper.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceWithMetadata; public class MapServiceTestWrapper implements MapService { diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceWithWrapperProducer.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceWithWrapperProducer.java similarity index 79% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceWithWrapperProducer.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceWithWrapperProducer.java index 77239007ee1..a9e5696394e 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/MapServiceWithWrapperProducer.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/MapServiceWithWrapperProducer.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.List; import java.util.Optional; @@ -9,13 +9,13 @@ import jakarta.enterprise.inject.Produces; import jakarta.inject.Inject; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.haversine.impl.HaversineWaypointsProvider; -import ai.timefold.solver.model.maps.service.client.api.MapService; -import ai.timefold.solver.model.maps.service.client.impl.MapServiceClient; -import ai.timefold.solver.model.maps.service.client.impl.MapServiceClientImpl; -import ai.timefold.solver.model.maps.service.client.impl.MapServiceLocalHaversineImpl; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.haversine.impl.HaversineWaypointsProvider; +import ai.timefold.solver.service.maps.service.client.api.MapService; +import ai.timefold.solver.service.maps.service.client.impl.MapServiceClient; +import ai.timefold.solver.service.maps.service.client.impl.MapServiceClientImpl; +import ai.timefold.solver.service.maps.service.client.impl.MapServiceLocalHaversineImpl; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistanceConverter; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/RemoteMapServiceConfigurationProfile.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/RemoteMapServiceConfigurationProfile.java similarity index 87% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/RemoteMapServiceConfigurationProfile.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/RemoteMapServiceConfigurationProfile.java index 3d8fa4440e1..509e52f4ef7 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/RemoteMapServiceConfigurationProfile.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/RemoteMapServiceConfigurationProfile.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.Map; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleConstraintProvider.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleConstraintProvider.java similarity index 94% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleConstraintProvider.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleConstraintProvider.java index efd330888b8..6e5b2ed5d51 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleConstraintProvider.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleConstraintProvider.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.core.api.score.stream.Constraint; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleEntity.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleEntity.java similarity index 86% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleEntity.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleEntity.java index d756e388469..58296be0822 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleEntity.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleEntity.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import ai.timefold.solver.core.api.domain.entity.PlanningEntity; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; diff --git a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleModel.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java similarity index 84% rename from model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleModel.java rename to service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java index 1f2ddc0ec41..78551e16bb4 100644 --- a/model/maps/service-client/src/test/java/ai/timefold/solver/model/maps/service/client/util/SampleModel.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/util/SampleModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.client.util; +package ai.timefold.solver.service.maps.service.client.util; import java.util.List; import java.util.Optional; @@ -10,14 +10,14 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.model.definition.api.Status; -import ai.timefold.solver.model.definition.api.UserModel; -import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware; -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.metrics.OutputMetricsAware; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.api.LocationsAwareSolverModel; +import ai.timefold.solver.service.definition.api.Status; +import ai.timefold.solver.service.definition.api.UserModel; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.api.LocationsAwareSolverModel; @PlanningSolution public class SampleModel implements LocationsAwareSolverModel, InputMetricsAware, diff --git a/model/maps/service-integration/pom.xml b/service/maps/service-integration/pom.xml similarity index 81% rename from model/maps/service-integration/pom.xml rename to service/maps/service-integration/pom.xml index 99d28a8447b..7ba7732a8f6 100644 --- a/model/maps/service-integration/pom.xml +++ b/service/maps/service-integration/pom.xml @@ -5,21 +5,21 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-service-integration - (Preview) Timefold Solver Model Maps Service Integration + timefold-solver-service-maps-service-integration + (Preview) Timefold Solver Service Maps Service Integration ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition ai.timefold.solver - timefold-solver-model-maps-api + timefold-solver-service-maps-api io.quarkus diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/LocationsAwareSolverModel.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java similarity index 68% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/LocationsAwareSolverModel.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java index 2152847d8db..5ab322f3cbe 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/LocationsAwareSolverModel.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/LocationsAwareSolverModel.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.maps.service.integration.api; +package ai.timefold.solver.service.maps.service.integration.api; import java.util.List; import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.maps.api.model.Location; public interface LocationsAwareSolverModel> extends SolverModel { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractor.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java similarity index 85% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractor.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java index 77c7489598b..f9ece8f15c0 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractor.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractor.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.integration.api; +package ai.timefold.solver.service.maps.service.integration.api; import java.util.List; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.maps.api.model.Waypoints; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.maps.api.model.Waypoints; public non-sealed interface WaypointsExtractor> extends WaypointsExtractorBase { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractorBase.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractorBase.java similarity index 80% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractorBase.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractorBase.java index 90e5ee29809..f26a26e7b18 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/api/WaypointsExtractorBase.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/api/WaypointsExtractorBase.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.api; +package ai.timefold.solver.service.maps.service.integration.api; /** * Root interface for all {@link WaypointsExtractor} implementations. diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/WaypointsService.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/WaypointsService.java similarity index 78% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/WaypointsService.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/WaypointsService.java index 47eb006f9d3..fff91586c72 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/impl/WaypointsService.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/WaypointsService.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.integration.impl; +package ai.timefold.solver.service.maps.service.integration.impl; import java.util.List; import java.util.Set; -import ai.timefold.solver.model.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.api.model.Waypoints; public interface WaypointsService { diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/reflection/ReflectionConfiguration.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/reflection/ReflectionConfiguration.java new file mode 100644 index 00000000000..a7a4322e209 --- /dev/null +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/impl/reflection/ReflectionConfiguration.java @@ -0,0 +1,10 @@ +package ai.timefold.solver.service.maps.service.integration.impl.reflection; + +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection(targets = { TravelTimeAndDistance.class }) +public class ReflectionConfiguration { + +} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapManagementApi.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapManagementApi.java similarity index 85% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapManagementApi.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapManagementApi.java index 684713d4d21..20678345dfc 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapManagementApi.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapManagementApi.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal; +package ai.timefold.solver.service.maps.service.integration.internal; import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON; @@ -15,9 +15,9 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSet; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSetStatus; -import ai.timefold.solver.model.maps.service.integration.internal.model.PatchLocationSet; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSet; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSetStatus; +import ai.timefold.solver.service.maps.service.integration.internal.model.PatchLocationSet; public interface MapManagementApi { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceApi.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceApi.java similarity index 90% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceApi.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceApi.java index decc84ded37..bff6525069e 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceApi.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceApi.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal; +package ai.timefold.solver.service.maps.service.integration.internal; import java.util.List; @@ -11,7 +11,7 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; public interface MapServiceApi { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceHealthCheckApi.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceHealthCheckApi.java similarity index 73% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceHealthCheckApi.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceHealthCheckApi.java index f81cbddf9d4..df0c12b1f89 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceHealthCheckApi.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceHealthCheckApi.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal; +package ai.timefold.solver.service.maps.service.integration.internal; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceOptions.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceOptions.java similarity index 97% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceOptions.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceOptions.java index 4153b3c6bd9..560bf15eb26 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/MapServiceOptions.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/MapServiceOptions.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal; +package ai.timefold.solver.service.maps.service.integration.internal; import java.util.Arrays; import java.util.HashMap; diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/IllegalDistanceResponseException.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/IllegalDistanceResponseException.java similarity index 83% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/IllegalDistanceResponseException.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/IllegalDistanceResponseException.java index 48eee59465d..a821297f910 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/IllegalDistanceResponseException.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/IllegalDistanceResponseException.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; public class IllegalDistanceResponseException extends RuntimeException { diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSet.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSet.java new file mode 100644 index 00000000000..3865ea2abd7 --- /dev/null +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSet.java @@ -0,0 +1,8 @@ +package ai.timefold.solver.service.maps.service.integration.internal.model; + +import java.util.List; + +import ai.timefold.solver.service.maps.api.model.Location; + +public record LocationSet(List locations, String options) { +} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSetStatus.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSetStatus.java similarity index 51% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSetStatus.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSetStatus.java index 273511730b5..2587753a283 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/LocationSetStatus.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/LocationSetStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; public enum LocationSetStatus { diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/PatchLocationSet.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/PatchLocationSet.java new file mode 100644 index 00000000000..a46a92e0bd2 --- /dev/null +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/PatchLocationSet.java @@ -0,0 +1,8 @@ +package ai.timefold.solver.service.maps.service.integration.internal.model; + +import java.util.List; + +import ai.timefold.solver.service.maps.api.model.Location; + +public record PatchLocationSet(List previous, List update, String options) { +} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TenantLocationSet.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TenantLocationSet.java similarity index 59% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TenantLocationSet.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TenantLocationSet.java index 7d02f25ae90..c01c49c7dc1 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TenantLocationSet.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TenantLocationSet.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; import java.util.List; import java.util.UUID; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; public record TenantLocationSet(UUID tenantId, String name, List locations, String provider, String region, String transportType) { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistance.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistance.java similarity index 80% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistance.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistance.java index 4ec36ca601a..f9611d2fdd0 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistance.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistance.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; import java.util.Objects; -import ai.timefold.solver.model.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.DistanceMatrix; public record TravelTimeAndDistance(DistanceMatrix travelTime, DistanceMatrix distance) { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java similarity index 93% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java index 7ba512415a1..ec574bbd488 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; import java.io.IOException; import java.io.InputStream; @@ -6,7 +6,7 @@ import java.util.List; import java.util.stream.IntStream; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java similarity index 87% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java index 984be7a7f51..947593aeb51 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceConverterException.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; public class TravelTimeAndDistanceConverterException extends RuntimeException { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java similarity index 84% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java index 4310ab4ba95..7df4476e36f 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/model/TravelTimeAndDistanceWithMetadata.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.model; +package ai.timefold.solver.service.maps.service.integration.internal.model; import java.util.List; diff --git a/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderIdentifier.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderIdentifier.java new file mode 100644 index 00000000000..94263a5ba4e --- /dev/null +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderIdentifier.java @@ -0,0 +1,7 @@ +package ai.timefold.solver.service.maps.service.integration.internal.provider; + +public interface ProviderIdentifier { + + String getProvider(); + +} diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderRequestChecker.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderRequestChecker.java similarity index 66% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderRequestChecker.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderRequestChecker.java index 75869d9bd31..e9f2c0d7941 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/ProviderRequestChecker.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/ProviderRequestChecker.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.provider; +package ai.timefold.solver.service.maps.service.integration.internal.provider; import java.util.Map; diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java similarity index 80% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java index e70ebb81dd5..7404e2b0115 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixProvider.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.integration.internal.provider; +package ai.timefold.solver.service.maps.service.integration.internal.provider; import java.util.List; import java.util.Map; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; public interface TravelTimeAndDistanceMatrixProvider extends ProviderIdentifier { diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java similarity index 82% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java index 4b67d30c957..6d98be827d4 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/TravelTimeAndDistanceMatrixResponse.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.integration.internal.provider; +package ai.timefold.solver.service.maps.service.integration.internal.provider; import java.io.InputStream; import java.util.List; diff --git a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/WaypointsProvider.java b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/WaypointsProvider.java similarity index 59% rename from model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/WaypointsProvider.java rename to service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/WaypointsProvider.java index 89a4e21754e..bffa5c1b451 100644 --- a/model/maps/service-integration/src/main/java/ai/timefold/solver/model/maps/service/integration/internal/provider/WaypointsProvider.java +++ b/service/maps/service-integration/src/main/java/ai/timefold/solver/service/maps/service/integration/internal/provider/WaypointsProvider.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.integration.internal.provider; +package ai.timefold.solver.service.maps.service.integration.internal.provider; import java.util.List; import java.util.Map; -import ai.timefold.solver.model.maps.api.model.Location; +import ai.timefold.solver.service.maps.api.model.Location; public interface WaypointsProvider extends ProviderIdentifier { diff --git a/model/maps/service-rest/pom.xml b/service/maps/service-rest/pom.xml similarity index 69% rename from model/maps/service-rest/pom.xml rename to service/maps/service-rest/pom.xml index 45a9f2aa5fc..7b507e0548c 100644 --- a/model/maps/service-rest/pom.xml +++ b/service/maps/service-rest/pom.xml @@ -3,20 +3,20 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-service-rest - (Preview) Timefold Solver Model Maps REST + timefold-solver-service-maps-service-rest + (Preview) Timefold Solver Service Maps REST ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration ai.timefold.solver - timefold-solver-model-rest + timefold-solver-service-rest diff --git a/model/maps/service-rest/src/main/java/ai/timefold/solver/model/maps/service/rest/impl/AbstractMapsModelAPIResource.java b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java similarity index 73% rename from model/maps/service-rest/src/main/java/ai/timefold/solver/model/maps/service/rest/impl/AbstractMapsModelAPIResource.java rename to service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java index b7d6ec65572..df6981b9de9 100644 --- a/model/maps/service-rest/src/main/java/ai/timefold/solver/model/maps/service/rest/impl/AbstractMapsModelAPIResource.java +++ b/service/maps/service-rest/src/main/java/ai/timefold/solver/service/maps/service/rest/impl/AbstractMapsModelAPIResource.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.rest.impl; +package ai.timefold.solver.service.maps.service.rest.impl; import java.util.Set; @@ -11,24 +11,24 @@ import jakarta.ws.rs.core.Response; import ai.timefold.solver.core.api.score.Score; -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.error.ErrorInfo; -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.Issue; -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.storage.AbstractStorageService; -import ai.timefold.solver.model.maps.api.model.Waypoints; -import ai.timefold.solver.model.maps.service.integration.impl.WaypointsService; -import ai.timefold.solver.model.rest.impl.AbstractModelAPIResource; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.validation.Issue; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.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.storage.AbstractStorageService; +import ai.timefold.solver.service.maps.api.model.Waypoints; +import ai.timefold.solver.service.maps.service.integration.impl.WaypointsService; +import ai.timefold.solver.service.rest.impl.AbstractModelAPIResource; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; diff --git a/model/maps/service-test/pom.xml b/service/maps/service-test/pom.xml similarity index 74% rename from model/maps/service-test/pom.xml rename to service/maps/service-test/pom.xml index 41fd1c8fcfb..f37f16ab26e 100644 --- a/model/maps/service-test/pom.xml +++ b/service/maps/service-test/pom.xml @@ -5,17 +5,17 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-maps + timefold-solver-service-maps ${revision} - timefold-solver-model-maps-service-test - (Preview) Timefold Solver Model Maps Service Test + timefold-solver-service-maps-service-test + (Preview) Timefold Solver Service Maps Service Test ai.timefold.solver - timefold-solver-model-maps-haversine + timefold-solver-service-maps-haversine io.quarkus diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/MapServiceApiWiremockExtensions.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/MapServiceApiWiremockExtensions.java similarity index 86% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/MapServiceApiWiremockExtensions.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/MapServiceApiWiremockExtensions.java index fb9279250fc..88218972368 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/MapServiceApiWiremockExtensions.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/MapServiceApiWiremockExtensions.java @@ -1,17 +1,17 @@ -package ai.timefold.solver.model.maps.service.test.api; +package ai.timefold.solver.service.maps.service.test.api; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.util.Enumeration; import java.util.Map; -import ai.timefold.solver.model.maps.service.test.impl.DistanceGetUpdateResponseTransformer; -import ai.timefold.solver.model.maps.service.test.impl.GetLocationSetCompletedStatusTransformer; -import ai.timefold.solver.model.maps.service.test.impl.GetLocationSetNotFoundStatusTransformer; -import ai.timefold.solver.model.maps.service.test.impl.GetLocationSetProcessingStatusTransformer; -import ai.timefold.solver.model.maps.service.test.impl.HaversineDistanceResponseTransformer; -import ai.timefold.solver.model.maps.service.test.impl.HaversineWaypointsResponseTransformer; -import ai.timefold.solver.model.maps.service.test.impl.SaveLocationSetResponseTransformer; +import ai.timefold.solver.service.maps.service.test.impl.DistanceGetUpdateResponseTransformer; +import ai.timefold.solver.service.maps.service.test.impl.GetLocationSetCompletedStatusTransformer; +import ai.timefold.solver.service.maps.service.test.impl.GetLocationSetNotFoundStatusTransformer; +import ai.timefold.solver.service.maps.service.test.impl.GetLocationSetProcessingStatusTransformer; +import ai.timefold.solver.service.maps.service.test.impl.HaversineDistanceResponseTransformer; +import ai.timefold.solver.service.maps.service.test.impl.HaversineWaypointsResponseTransformer; +import ai.timefold.solver.service.maps.service.test.impl.SaveLocationSetResponseTransformer; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/TestDistanceCalculator.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/TestDistanceCalculator.java similarity index 90% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/TestDistanceCalculator.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/TestDistanceCalculator.java index 58c8028ca12..f2b068f1e7d 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/api/TestDistanceCalculator.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/api/TestDistanceCalculator.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.maps.service.test.api; +package ai.timefold.solver.service.maps.service.test.api; import java.util.Collection; import java.util.Collections; @@ -7,9 +7,9 @@ import java.util.Set; import java.util.function.BiFunction; -import ai.timefold.solver.model.maps.api.DistanceMatrix; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.api.DistanceMatrix; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; public class TestDistanceCalculator { diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java similarity index 86% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java index 7739749f206..9b71cdc4e1d 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/DistanceGetUpdateResponseTransformer.java @@ -1,18 +1,18 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; import java.io.ByteArrayInputStream; import java.io.SequenceInputStream; import java.util.Collections; import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java similarity index 91% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java index 2940947035c..992228b0058 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetCompletedStatusTransformer.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSetStatus; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSetStatus; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java similarity index 91% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java index 5afb854aa26..b69ee98357c 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetNotFoundStatusTransformer.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSetStatus; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSetStatus; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java similarity index 89% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java index cd50fa22955..c383c046f26 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/GetLocationSetProcessingStatusTransformer.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSetStatus; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSetStatus; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineDistanceResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java similarity index 90% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineDistanceResponseTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java index 8db0231164f..4b8d8f2ee33 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineDistanceResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineDistanceResponseTransformer.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_LOCATION_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; -import static ai.timefold.solver.model.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_CHUNK_BYTES; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATIONS_NOT_IN_MAP; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_LOCATION_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_MATRIX_HASH_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_PROVIDER_HEADER; +import static ai.timefold.solver.service.definition.internal.Headers.X_MAPS_RESPONSE_CHUNK_BYTES; import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -15,9 +15,9 @@ import java.util.List; import java.util.stream.Collectors; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; -import ai.timefold.solver.model.maps.service.integration.internal.model.TravelTimeAndDistance; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.haversine.impl.HaversineTravelTimeAndDistanceMatrixProvider; +import ai.timefold.solver.service.maps.service.integration.internal.model.TravelTimeAndDistance; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineWaypointsResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineWaypointsResponseTransformer.java similarity index 91% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineWaypointsResponseTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineWaypointsResponseTransformer.java index 49712131a44..0fcad336b4d 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/HaversineWaypointsResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/HaversineWaypointsResponseTransformer.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import ai.timefold.solver.model.maps.api.model.Location; -import ai.timefold.solver.model.maps.haversine.impl.HaversineWaypointsProvider; +import ai.timefold.solver.service.maps.api.model.Location; +import ai.timefold.solver.service.maps.haversine.impl.HaversineWaypointsProvider; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/SaveLocationSetResponseTransformer.java b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/SaveLocationSetResponseTransformer.java similarity index 88% rename from model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/SaveLocationSetResponseTransformer.java rename to service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/SaveLocationSetResponseTransformer.java index c3b78bd0414..70402565edd 100644 --- a/model/maps/service-test/src/main/java/ai/timefold/solver/model/maps/service/test/impl/SaveLocationSetResponseTransformer.java +++ b/service/maps/service-test/src/main/java/ai/timefold/solver/service/maps/service/test/impl/SaveLocationSetResponseTransformer.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.maps.service.test.impl; +package ai.timefold.solver.service.maps.service.test.impl; import java.util.Map; -import ai.timefold.solver.model.maps.service.integration.internal.MapServiceOptions; -import ai.timefold.solver.model.maps.service.integration.internal.model.LocationSet; +import ai.timefold.solver.service.maps.service.integration.internal.MapServiceOptions; +import ai.timefold.solver.service.maps.service.integration.internal.model.LocationSet; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/model-defaults/pom.xml b/service/model-defaults/pom.xml similarity index 76% rename from model/model-defaults/pom.xml rename to service/model-defaults/pom.xml index 41a98416e6c..9080b0146fa 100644 --- a/model/model-defaults/pom.xml +++ b/service/model-defaults/pom.xml @@ -5,13 +5,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-defaults - (Preview) Timefold Solver Model Default configuration + timefold-solver-service-defaults + (Preview) Timefold Solver Service Default configuration The default configuration to be optionally imported by a model based on Timefold Solver. This module is in a preview state and thus is a subject to changes. diff --git a/model/model-defaults/src/main/resources/application.properties b/service/model-defaults/src/main/resources/application.properties similarity index 100% rename from model/model-defaults/src/main/resources/application.properties rename to service/model-defaults/src/main/resources/application.properties diff --git a/model/pom.xml b/service/pom.xml similarity index 95% rename from model/pom.xml rename to service/pom.xml index 7fbaac32e68..3cdb5a1e817 100644 --- a/model/pom.xml +++ b/service/pom.xml @@ -7,10 +7,10 @@ ../build/build-parent/pom.xml - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent pom - (Preview) Timefold Solver Model Parent + (Preview) Timefold Solver Service Parent 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 @@ ai.timefold.solver - timefold-solver-model-maps-service-integration + timefold-solver-service-maps-service-integration ai.timefold.solver - timefold-solver-model-quarkus + timefold-solver-service-quarkus ai.timefold.solver - timefold-solver-model-worker + timefold-solver-service-worker io.quarkus diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataConstraintProvider.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataConstraintProvider.java similarity index 94% rename from model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataConstraintProvider.java rename to service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataConstraintProvider.java index e22e73ccb0d..6672ac4a0e4 100644 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataConstraintProvider.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataConstraintProvider.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; import ai.timefold.solver.core.api.score.SimpleScore; import ai.timefold.solver.core.api.score.stream.Constraint; diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataEntity.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataEntity.java similarity index 87% rename from model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataEntity.java rename to service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataEntity.java index 5019dde544d..dd3919a6d4e 100644 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataEntity.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataEntity.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; import ai.timefold.solver.core.api.domain.entity.PlanningEntity; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConfig.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java similarity index 54% rename from model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConfig.java rename to service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java index 3f94b291314..cf74bee6713 100644 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataModelConfig.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConfig.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; -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/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java new file mode 100644 index 00000000000..0c077d50475 --- /dev/null +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelConstraintJustification.java @@ -0,0 +1,7 @@ +package ai.timefold.solver.service.quarkus.deployment.it; + +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; + +public class TestdataModelConstraintJustification implements ModelConstraintJustification { + +} diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java new file mode 100644 index 00000000000..073aaf10e86 --- /dev/null +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelInputMetrics.java @@ -0,0 +1,6 @@ +package ai.timefold.solver.service.quarkus.deployment.it; + +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; + +public class TestdataModelInputMetrics implements ModelInputMetrics { +} diff --git a/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java new file mode 100644 index 00000000000..3677ca4c882 --- /dev/null +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataModelOutputMetrics.java @@ -0,0 +1,7 @@ +package ai.timefold.solver.service.quarkus.deployment.it; + +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; + +public class TestdataModelOutputMetrics implements ModelOutputMetrics { + +} diff --git a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataRest.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataRest.java similarity index 63% rename from model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataRest.java rename to service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataRest.java index fbedfe9ec73..e954dc75f23 100644 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataRest.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataRest.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; 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/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataSolution.java b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java similarity index 84% rename from model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataSolution.java rename to service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java index 7e7bebcd896..72e730b8219 100644 --- a/model/quarkus/integration-tests/src/main/java/ai/timefold/solver/model/quarkus/deployment/it/TestdataSolution.java +++ b/service/quarkus/integration-tests/src/main/java/ai/timefold/solver/service/quarkus/deployment/it/TestdataSolution.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; import java.util.List; @@ -9,11 +9,11 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.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.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; @PlanningSolution public class TestdataSolution implements SolverModel, InputMetricsAware, diff --git a/model/quarkus/integration-tests/src/main/resources/application.properties b/service/quarkus/integration-tests/src/main/resources/application.properties similarity index 100% rename from model/quarkus/integration-tests/src/main/resources/application.properties rename to service/quarkus/integration-tests/src/main/resources/application.properties diff --git a/model/quarkus/integration-tests/src/test/java/ai/timefold/solver/model/quarkus/deployment/it/ModelsExtensionTest.java b/service/quarkus/integration-tests/src/test/java/ai/timefold/solver/service/quarkus/deployment/it/ModelsExtensionTest.java similarity index 73% rename from model/quarkus/integration-tests/src/test/java/ai/timefold/solver/model/quarkus/deployment/it/ModelsExtensionTest.java rename to service/quarkus/integration-tests/src/test/java/ai/timefold/solver/service/quarkus/deployment/it/ModelsExtensionTest.java index 15d7f6226a7..299979e5d67 100644 --- a/model/quarkus/integration-tests/src/test/java/ai/timefold/solver/model/quarkus/deployment/it/ModelsExtensionTest.java +++ b/service/quarkus/integration-tests/src/test/java/ai/timefold/solver/service/quarkus/deployment/it/ModelsExtensionTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.it; +package ai.timefold.solver.service.quarkus.deployment.it; import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -6,9 +6,9 @@ import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -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.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 org.junit.jupiter.api.Test; diff --git a/model/quarkus/pom.xml b/service/quarkus/pom.xml similarity index 88% rename from model/quarkus/pom.xml rename to service/quarkus/pom.xml index d86970e2cbe..11f7d092aea 100644 --- a/model/quarkus/pom.xml +++ b/service/quarkus/pom.xml @@ -6,13 +6,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-quarkus-parent + timefold-solver-service-quarkus-parent pom - (Preview) Timefold Solver Model Quarkus Extension: Parent + (Preview) Timefold Solver Service Quarkus Extension: Parent The module contains Quarkus integration required for models based on Timefold Solver. This module is in a preview state and thus is a subject to changes. diff --git a/model/quarkus/runtime/pom.xml b/service/quarkus/runtime/pom.xml similarity index 89% rename from model/quarkus/runtime/pom.xml rename to service/quarkus/runtime/pom.xml index 4070b404572..b007666b94a 100644 --- a/model/quarkus/runtime/pom.xml +++ b/service/quarkus/runtime/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 - (Preview) Timefold Solver Model Quarkus Extension: Runtime + timefold-solver-service-quarkus + (Preview) Timefold Solver Service Quarkus Extension: Runtime io.quarkus @@ -38,15 +38,15 @@ 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 diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/ModelBuildInfoRecorder.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/ModelBuildInfoRecorder.java similarity index 65% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/ModelBuildInfoRecorder.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/ModelBuildInfoRecorder.java index 26e0522580f..fd4596605ba 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/ModelBuildInfoRecorder.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/ModelBuildInfoRecorder.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.quarkus.deployment; +package ai.timefold.solver.service.quarkus.deployment; import java.util.function.Supplier; -import ai.timefold.solver.model.definition.internal.descriptor.ModelBuildInfo; +import ai.timefold.solver.service.definition.internal.descriptor.ModelBuildInfo; import io.quarkus.runtime.annotations.Recorder; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java similarity index 81% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java index c64c325d40c..5d5b906363a 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/AbstractTrivialModelConvertor.java @@ -1,16 +1,16 @@ -package ai.timefold.solver.model.quarkus.deployment.defaults; +package ai.timefold.solver.service.quarkus.deployment.defaults; import java.util.Optional; import ai.timefold.solver.core.api.score.Score; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelConvertor; -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.domain.ModelConfig; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; -import ai.timefold.solver.model.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConvertor; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.domain.ModelResponse; /** * Default model convertor for the trivial case when: diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConfigOverrides.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java similarity index 59% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConfigOverrides.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java index d6ef0f09277..2f3a6f1896b 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConfigOverrides.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConfigOverrides.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.quarkus.deployment.defaults; +package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConstraintJustification.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java similarity index 60% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConstraintJustification.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java index 78d0d5bd0d1..d991923bac9 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelConstraintJustification.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelConstraintJustification.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.quarkus.deployment.defaults; +package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.model.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelInputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java similarity index 58% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelInputMetrics.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java index d34ea1a41fd..a45e5b3c7bc 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelInputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelInputMetrics.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.quarkus.deployment.defaults; +package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelOutputMetrics.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java similarity index 58% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelOutputMetrics.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java index 9cd6b980dfc..85f97de6a46 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/defaults/EmptyModelOutputMetrics.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/defaults/EmptyModelOutputMetrics.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.quarkus.deployment.defaults; +package ai.timefold.solver.service.quarkus.deployment.defaults; -import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import com.fasterxml.jackson.annotation.JsonAutoDetect; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JDKRegularExpression.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JDKRegularExpression.java similarity index 95% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JDKRegularExpression.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JDKRegularExpression.java index fa978383810..baa92a88a5e 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JDKRegularExpression.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JDKRegularExpression.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.graalvm.validator; +package ai.timefold.solver.service.quarkus.deployment.graalvm.validator; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java similarity index 92% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java index 79771c90e93..710b63cb9dd 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/graalvm/validator/JsonSchemaSubstitutions.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.graalvm.validator; +package ai.timefold.solver.service.quarkus.deployment.graalvm.validator; import com.networknt.schema.ValidationContext; import com.networknt.schema.regex.RegularExpression; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/log/SolverLogFilter.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/log/SolverLogFilter.java similarity index 94% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/log/SolverLogFilter.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/log/SolverLogFilter.java index 4efefab80c2..ce709c496c2 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/log/SolverLogFilter.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/log/SolverLogFilter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.log; +package ai.timefold.solver.service.quarkus.deployment.log; import java.util.logging.Filter; import java.util.logging.LogRecord; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java similarity index 90% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java index 055ca636f9f..6ea54a2c545 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelConfigMessageBodyReaders.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.rest.io; +package ai.timefold.solver.service.quarkus.deployment.rest.io; import java.io.IOException; import java.io.InputStream; @@ -11,7 +11,7 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.model.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.domain.Configuration; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java similarity index 83% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java index 28a9088eb58..efa838b520a 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractModelRequestMessageBodyReaders.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.rest.io; +package ai.timefold.solver.service.quarkus.deployment.rest.io; import java.io.IOException; import java.io.InputStream; @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java similarity index 83% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java index 54b60d2f1a1..b4eb156e55b 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/io/AbstractScoreAnalysisRequestMessageBodyReaders.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.rest.io; +package ai.timefold.solver.service.quarkus.deployment.rest.io; import java.io.IOException; import java.io.InputStream; @@ -11,9 +11,9 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.ext.MessageBodyReader; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.domain.ScoreAnalysisRequest; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.domain.ScoreAnalysisRequest; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java similarity index 95% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java index 3d54c64c64d..ff9c9a648f7 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/rest/schema/ValidatingReaderInterceptorContext.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.quarkus.deployment.rest.schema; +package ai.timefold.solver.service.quarkus.deployment.rest.schema; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -22,9 +22,9 @@ import jakarta.ws.rs.ext.ReaderInterceptor; import jakarta.ws.rs.ext.ReaderInterceptorContext; -import ai.timefold.solver.model.definition.api.ModelDescriptor; -import ai.timefold.solver.model.definition.api.validation.Validated; -import ai.timefold.solver.model.definition.api.validation.Validator; +import ai.timefold.solver.service.definition.api.ModelDescriptor; +import ai.timefold.solver.service.definition.api.validation.Validated; +import ai.timefold.solver.service.definition.api.validation.Validator; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java similarity index 69% rename from model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java rename to service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java index 31632126b47..b3e059fe7b1 100644 --- a/model/quarkus/runtime/src/main/java/ai/timefold/solver/model/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java +++ b/service/quarkus/runtime/src/main/java/ai/timefold/solver/service/quarkus/deployment/validation/ValidationIssueTypeCatalogRecorder.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.quarkus.deployment.validation; +package ai.timefold.solver.service.quarkus.deployment.validation; import java.util.Collection; import java.util.Collections; import java.util.List; -import ai.timefold.solver.model.definition.api.validation.IssueType; -import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; import io.quarkus.runtime.RuntimeValue; import io.quarkus.runtime.annotations.Recorder; diff --git a/model/quarkus/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/service/quarkus/runtime/src/main/resources/META-INF/quarkus-extension.yaml similarity index 100% rename from model/quarkus/runtime/src/main/resources/META-INF/quarkus-extension.yaml rename to service/quarkus/runtime/src/main/resources/META-INF/quarkus-extension.yaml diff --git a/model/rest/pom.xml b/service/rest/pom.xml similarity index 83% rename from model/rest/pom.xml rename to service/rest/pom.xml index ae9cd7e246d..a1942806e44 100644 --- a/model/rest/pom.xml +++ b/service/rest/pom.xml @@ -2,13 +2,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-rest - (Preview) Timefold Solver Model REST + timefold-solver-service-rest + (Preview) Timefold Solver Service REST This module contains REST API interface for models based on Timefold Solver. This module is in a preview state and thus is a subject to changes. @@ -17,11 +17,11 @@ ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition ai.timefold.solver - timefold-solver-model-json + timefold-solver-service-json io.quarkus diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/api/ModelRest.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/api/ModelRest.java similarity index 83% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/api/ModelRest.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/api/ModelRest.java index 882c94caef2..75b79c2d448 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/api/ModelRest.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/api/ModelRest.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.rest.api; +package ai.timefold.solver.service.rest.api; -import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; /** * Interface used by models to indicate that REST API should be generated for given model. diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractDemoDataResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java similarity index 88% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractDemoDataResource.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java index d7dc80a8859..160718bd69b 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractDemoDataResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractDemoDataResource.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl; +package ai.timefold.solver.service.rest.impl; import java.util.List; @@ -7,11 +7,11 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; -import ai.timefold.solver.model.definition.api.ModelConfigOverrides; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.data.DemoDataGenerator; -import ai.timefold.solver.model.definition.api.data.DemoMetaData; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.data.DemoDataGenerator; +import ai.timefold.solver.service.definition.api.data.DemoMetaData; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java similarity index 93% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java index e0c63532772..fb5838de0a7 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/AbstractModelAPIResource.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/AbstractModelAPIResource.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl; +package ai.timefold.solver.service.rest.impl; import java.io.IOException; import java.nio.file.Files; @@ -27,44 +27,44 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; -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.SolvingStatus; -import ai.timefold.solver.model.definition.api.domain.Configuration; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.api.domain.ModelInputPatchRequest; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; -import ai.timefold.solver.model.definition.api.domain.ModelResponse; -import ai.timefold.solver.model.definition.api.domain.RunConfiguration; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.api.error.ValidationErrorInfo; -import ai.timefold.solver.model.definition.api.log.LogInfo; -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.rest.DatasetSelector; -import ai.timefold.solver.model.definition.api.rest.OperationId; -import ai.timefold.solver.model.definition.api.rest.OperationOnPost; -import ai.timefold.solver.model.definition.api.validation.Issue; -import ai.timefold.solver.model.definition.api.validation.IssueCode; -import ai.timefold.solver.model.definition.api.validation.ModelValidator; -import ai.timefold.solver.model.definition.api.validation.Validated; -import ai.timefold.solver.model.definition.api.validation.ValidationBuilder; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationIssueTypes; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.model.definition.impl.log.LoggingConstants; -import ai.timefold.solver.model.definition.impl.validation.ValidationIssueTypeCatalog; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -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.json.internal.patch.JsonPatch; +import ai.timefold.solver.service.definition.api.ModelConfigOverrides; +import ai.timefold.solver.service.definition.api.ModelConstraintJustification; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.ModelInputPatchRequest; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.api.domain.RunConfiguration; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.error.ValidationErrorInfo; +import ai.timefold.solver.service.definition.api.log.LogInfo; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.rest.DatasetSelector; +import ai.timefold.solver.service.definition.api.rest.OperationId; +import ai.timefold.solver.service.definition.api.rest.OperationOnPost; +import ai.timefold.solver.service.definition.api.validation.Issue; +import ai.timefold.solver.service.definition.api.validation.IssueCode; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.Validated; +import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.impl.log.LoggingConstants; +import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +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.json.internal.patch.JsonPatch; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/CompletionExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java similarity index 77% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/CompletionExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java index 9c38d7de354..bac2d778f4b 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/CompletionExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/CompletionExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import java.util.concurrent.CompletionException; @@ -9,10 +9,10 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; @Provider public class CompletionExceptionMapper implements ExceptionMapper { diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalArgumentExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java similarity index 77% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalArgumentExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java index a4d740d986f..aeaf8eed7e6 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalArgumentExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalArgumentExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; @@ -6,8 +6,8 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; @Provider public class IllegalArgumentExceptionMapper implements ExceptionMapper { diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalStateExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java similarity index 76% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalStateExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java index 6d35de85e4b..5a7330f2d99 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/IllegalStateExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/IllegalStateExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; @@ -6,8 +6,8 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; @Provider public class IllegalStateExceptionMapper implements ExceptionMapper { diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/ItemNotFoundExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java similarity index 81% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/ItemNotFoundExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java index 546cb60edd5..2c1f3e4e23c 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/ItemNotFoundExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/ItemNotFoundExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; @@ -6,8 +6,8 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/JacksonMismatchedInputExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/JacksonMismatchedInputExceptionMapper.java similarity index 98% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/JacksonMismatchedInputExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/JacksonMismatchedInputExceptionMapper.java index a8c930d8b89..f5c36e1d4f4 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/JacksonMismatchedInputExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/JacksonMismatchedInputExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import java.util.ArrayList; import java.util.List; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/TimefoldRuntimeExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java similarity index 84% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/TimefoldRuntimeExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java index 3cdbefa76fb..794b5c36799 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/TimefoldRuntimeExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/TimefoldRuntimeExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; @@ -6,8 +6,8 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/UnknownExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java similarity index 82% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/UnknownExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java index 451a833e7d9..80a5a6b7b2d 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/UnknownExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/UnknownExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import java.util.UUID; @@ -8,9 +8,9 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/WebApplicationExceptionMapper.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java similarity index 92% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/WebApplicationExceptionMapper.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java index 46fc3b25c62..0c767c69978 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/error/WebApplicationExceptionMapper.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/error/WebApplicationExceptionMapper.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.error; +package ai.timefold.solver.service.rest.impl.error; import java.util.UUID; @@ -9,7 +9,7 @@ import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; -import ai.timefold.solver.model.definition.api.error.ErrorInfo; +import ai.timefold.solver.service.definition.api.error.ErrorInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/ext/OpenAPIFilter.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/ext/OpenAPIFilter.java similarity index 93% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/ext/OpenAPIFilter.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/ext/OpenAPIFilter.java index 3dd1efcd7db..c0e861a305e 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/ext/OpenAPIFilter.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/ext/OpenAPIFilter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.ext; +package ai.timefold.solver.service.rest.impl.ext; import java.util.Optional; diff --git a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/stats/StatisticsCollectorImpl.java b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/stats/StatisticsCollectorImpl.java similarity index 94% rename from model/rest/src/main/java/ai/timefold/solver/model/rest/impl/stats/StatisticsCollectorImpl.java rename to service/rest/src/main/java/ai/timefold/solver/service/rest/impl/stats/StatisticsCollectorImpl.java index 70240da6dd3..bf42e0c7c88 100644 --- a/model/rest/src/main/java/ai/timefold/solver/model/rest/impl/stats/StatisticsCollectorImpl.java +++ b/service/rest/src/main/java/ai/timefold/solver/service/rest/impl/stats/StatisticsCollectorImpl.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.rest.impl.stats; +package ai.timefold.solver.service.rest.impl.stats; import java.util.ArrayList; import java.util.Collections; @@ -10,7 +10,7 @@ import jakarta.ws.rs.container.ContainerRequestContext; import jakarta.ws.rs.container.ContainerResponseContext; -import ai.timefold.solver.model.definition.internal.stats.StatisticsCollector; +import ai.timefold.solver.service.definition.internal.stats.StatisticsCollector; import org.jboss.resteasy.reactive.server.ServerRequestFilter; import org.jboss.resteasy.reactive.server.ServerResponseFilter; diff --git a/model/rest/src/main/resources/META-INF/microprofile-config.properties b/service/rest/src/main/resources/META-INF/microprofile-config.properties similarity index 87% rename from model/rest/src/main/resources/META-INF/microprofile-config.properties rename to service/rest/src/main/resources/META-INF/microprofile-config.properties index 9bd97b40215..5c88cd836e8 100644 --- a/model/rest/src/main/resources/META-INF/microprofile-config.properties +++ b/service/rest/src/main/resources/META-INF/microprofile-config.properties @@ -10,4 +10,4 @@ # Note: Cannot be implemented as ConfigSource due to issue with native: https://github.com/quarkusio/quarkus/issues/28269 config_ordinal=80 -mp.openapi.filter=ai.timefold.solver.model.rest.impl.ext.OpenAPIFilter \ No newline at end of file +mp.openapi.filter=ai.timefold.solver.service.rest.impl.ext.OpenAPIFilter \ No newline at end of file diff --git a/model/test-model/pom.xml b/service/test-model/pom.xml similarity index 88% rename from model/test-model/pom.xml rename to service/test-model/pom.xml index f05ecdbebab..4dbe2a00136 100644 --- a/model/test-model/pom.xml +++ b/service/test-model/pom.xml @@ -5,13 +5,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-parent + timefold-solver-service-parent ${revision} ../facade/model-parent/pom.xml timefold-test-model - (Preview) Timefold Solver Model test model + (Preview) Timefold Solver Service test model This module contains a test model for the purpose of integration testing. This module is in a preview state and thus is a subject to changes. @@ -24,7 +24,7 @@ ai.timefold.solver - timefold-solver-model + timefold-solver-service ${project.version} diff --git a/model/test-model/src/build/openapi.json b/service/test-model/src/build/openapi.json similarity index 100% rename from model/test-model/src/build/openapi.json rename to service/test-model/src/build/openapi.json diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java similarity index 52% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java index dfa930d3b3a..bfbbacad768 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/AbstractEmployeeScheduleIssue.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import java.util.List; -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.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 org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java similarity index 93% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java index 007d40e0009..914d2dccb36 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleConstraintProvider.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import ai.timefold.solver.core.api.score.HardMediumSoftScore; 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.model.testmodel.domain.Shift; +import ai.timefold.solver.service.testmodel.domain.Shift; import org.jspecify.annotations.NonNull; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java similarity index 88% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java index 02ef6e49267..cfdda9c098b 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleInputMetrics.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; -import ai.timefold.solver.model.definition.api.domain.DataFormat; -import ai.timefold.solver.model.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java similarity index 82% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java index aa512077b5a..b5ff1edb7bc 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleOutputMetrics.java @@ -1,7 +1,7 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; -import ai.timefold.solver.model.definition.api.domain.DataFormat; -import ai.timefold.solver.model.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.domain.DataFormat; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.extensions.Extension; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java similarity index 53% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java index 0b8a62f4a00..cf12dafe64c 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResource.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import jakarta.ws.rs.Path; -import ai.timefold.solver.model.rest.api.ModelRest; +import ai.timefold.solver.service.rest.api.ModelRest; @Path("schedules") public interface EmployeeScheduleResource extends ModelRest { diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java similarity index 61% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java index 3eb2709a683..94c2c03a654 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/EmployeeScheduleValidator.java @@ -1,13 +1,13 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; 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.model.testmodel.domain.EmployeeSchedule; -import ai.timefold.solver.model.testmodel.domain.Shift; +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; +import ai.timefold.solver.service.testmodel.domain.EmployeeSchedule; +import ai.timefold.solver.service.testmodel.domain.Shift; @ApplicationScoped public class EmployeeScheduleValidator diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java similarity index 80% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java index d7ed9841fce..e63f810265d 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/ShiftEndBeforeStartIssue.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import java.time.OffsetDateTime; 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.model.definition.api.validation.metadata.IssueMessage; +import ai.timefold.solver.service.definition.api.validation.IssueCode; +import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.validation.metadata.IssueMessage; import org.eclipse.microprofile.openapi.annotations.media.Schema; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java similarity index 91% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java index b22ca95f32f..63c656a4f6d 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Employee.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel.domain; +package ai.timefold.solver.service.testmodel.domain; import java.util.Set; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java similarity index 83% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java index 21307a35ced..34ff1d14ebc 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/EmployeeSchedule.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel.domain; +package ai.timefold.solver.service.testmodel.domain; import java.util.List; @@ -8,13 +8,13 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.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.testmodel.EmployeeScheduleInputMetrics; -import ai.timefold.solver.model.testmodel.EmployeeScheduleOutputMetrics; +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.testmodel.EmployeeScheduleInputMetrics; +import ai.timefold.solver.service.testmodel.EmployeeScheduleOutputMetrics; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java similarity index 96% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java index cea55af4c62..ea2c8796b23 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Shift.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel.domain; +package ai.timefold.solver.service.testmodel.domain; import java.time.OffsetDateTime; diff --git a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java similarity index 65% rename from model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java rename to service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java index be075ccc8e8..0f7b83a08de 100644 --- a/model/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java +++ b/service/test-model/src/main/java/ai/timefold/solver/model/testmodel/domain/Skill.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel.domain; +package ai.timefold.solver.service.testmodel.domain; public enum Skill { diff --git a/model/test-model/src/main/resources/application.properties b/service/test-model/src/main/resources/application.properties similarity index 100% rename from model/test-model/src/main/resources/application.properties rename to service/test-model/src/main/resources/application.properties diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java similarity index 90% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java index d6f5e65caa0..8bfe8e610da 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/ApiVersion2ConfigProfile.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import java.util.Map; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java similarity index 80% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java index c832f2b7d60..5abd8bea709 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleProviderTest.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.stream.test.ConstraintVerifier; -import ai.timefold.solver.model.testmodel.domain.Employee; -import ai.timefold.solver.model.testmodel.domain.EmployeeSchedule; -import ai.timefold.solver.model.testmodel.domain.Shift; -import ai.timefold.solver.model.testmodel.domain.Skill; +import ai.timefold.solver.service.testmodel.domain.Employee; +import ai.timefold.solver.service.testmodel.domain.EmployeeSchedule; +import ai.timefold.solver.service.testmodel.domain.Shift; +import ai.timefold.solver.service.testmodel.domain.Skill; import org.junit.jupiter.api.Test; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java similarity index 77% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java index ac0a780a689..6f290d6889d 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceIT.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import io.quarkus.test.junit.QuarkusIntegrationTest; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java similarity index 91% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java index a3deb471ffa..0b397a5c78d 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import static io.restassured.RestAssured.given; import static org.assertj.core.api.Assertions.assertThat; @@ -27,27 +27,27 @@ import jakarta.ws.rs.core.MediaType; import ai.timefold.solver.core.api.score.HardMediumSoftScore; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.SolvingStatus; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.api.domain.ModelRequest; -import ai.timefold.solver.model.definition.api.domain.ModelResponse; -import ai.timefold.solver.model.definition.api.validation.IssueCode; -import ai.timefold.solver.model.definition.api.validation.IssueSeverity; -import ai.timefold.solver.model.definition.api.validation.IssueType; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationIssueTypes; -import ai.timefold.solver.model.definition.api.validation.dto.ValidationResult; -import ai.timefold.solver.model.definition.internal.events.BestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetComputedEvent; -import ai.timefold.solver.model.definition.internal.events.FinalBestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.SolverChannels; -import ai.timefold.solver.model.quarkus.deployment.defaults.EmptyModelConfigOverrides; -import ai.timefold.solver.model.definition.api.rest.OperationOnPost; -import ai.timefold.solver.model.testmodel.domain.Employee; -import ai.timefold.solver.model.testmodel.domain.EmployeeSchedule; -import ai.timefold.solver.model.testmodel.domain.Shift; -import ai.timefold.solver.model.testmodel.domain.Skill; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.ModelRequest; +import ai.timefold.solver.service.definition.api.domain.ModelResponse; +import ai.timefold.solver.service.definition.api.validation.IssueCode; +import ai.timefold.solver.service.definition.api.validation.IssueSeverity; +import ai.timefold.solver.service.definition.api.validation.IssueType; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationIssueTypes; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; +import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.SolverChannels; +import ai.timefold.solver.service.quarkus.deployment.defaults.EmptyModelConfigOverrides; +import ai.timefold.solver.service.definition.api.rest.OperationOnPost; +import ai.timefold.solver.service.testmodel.domain.Employee; +import ai.timefold.solver.service.testmodel.domain.EmployeeSchedule; +import ai.timefold.solver.service.testmodel.domain.Shift; +import ai.timefold.solver.service.testmodel.domain.Skill; import org.assertj.core.api.SoftAssertions; import org.eclipse.microprofile.config.inject.ConfigProperty; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java similarity index 88% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java index 83c9eca5a6d..5aa0cc60de6 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/EmployeeScheduleResourceV2BetaTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java similarity index 88% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java index 3c47b07d75c..0c2f2879595 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/InMemoryMessagingTestResource.java @@ -1,9 +1,9 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import java.util.HashMap; import java.util.Map; -import ai.timefold.solver.model.definition.internal.events.SolverChannels; +import ai.timefold.solver.service.definition.internal.events.SolverChannels; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; import io.smallrye.reactive.messaging.memory.InMemoryConnector; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java similarity index 96% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java index 8cecdeb766c..32ab9066eac 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; @@ -12,7 +12,7 @@ import java.util.List; import java.util.Optional; -import ai.timefold.solver.model.definition.api.rest.OperationId; +import ai.timefold.solver.service.definition.api.rest.OperationId; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.openapi.models.OpenAPI; diff --git a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java similarity index 81% rename from model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java rename to service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java index 2ae01d67ddc..84bb4acc463 100644 --- a/model/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java +++ b/service/test-model/src/test/java/ai/timefold/solver/model/testmodel/OpenApiV2BetaTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.testmodel; +package ai.timefold.solver.service.testmodel; import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.TestProfile; diff --git a/model/test/pom.xml b/service/test/pom.xml similarity index 83% rename from model/test/pom.xml rename to service/test/pom.xml index 2e2e39dbd27..1cf75785d77 100644 --- a/model/test/pom.xml +++ b/service/test/pom.xml @@ -5,13 +5,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-test - (Preview) Timefold Solver Model Test support + timefold-solver-service-test + (Preview) Timefold Solver Service Test support This module contains jUnit support for running model tests against a Timefold model. This module is intended to be used as a test-scoped dependency. @@ -20,7 +20,7 @@ ai.timefold.solver - timefold-solver-model-jackson + timefold-solver-service-jackson com.fasterxml.jackson.core diff --git a/model/test/src/main/java/ai/timefold/solver/model/test/impl/quarkus/ModelRequestSerializationCallback.java b/service/test/src/main/java/ai/timefold/solver/service/test/impl/quarkus/ModelRequestSerializationCallback.java similarity index 95% rename from model/test/src/main/java/ai/timefold/solver/model/test/impl/quarkus/ModelRequestSerializationCallback.java rename to service/test/src/main/java/ai/timefold/solver/service/test/impl/quarkus/ModelRequestSerializationCallback.java index 7c9b7affc23..c6c6cdf83e3 100644 --- a/model/test/src/main/java/ai/timefold/solver/model/test/impl/quarkus/ModelRequestSerializationCallback.java +++ b/service/test/src/main/java/ai/timefold/solver/service/test/impl/quarkus/ModelRequestSerializationCallback.java @@ -1,6 +1,6 @@ -package ai.timefold.solver.model.test.impl.quarkus; +package ai.timefold.solver.service.test.impl.quarkus; -import ai.timefold.solver.model.jackson.impl.SdkBuildTimeObjectMapperFactory; +import ai.timefold.solver.service.jackson.impl.SdkBuildTimeObjectMapperFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/service/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback b/service/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback new file mode 100644 index 00000000000..d3908aff100 --- /dev/null +++ b/service/test/src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback @@ -0,0 +1 @@ +ai.timefold.solver.service.test.impl.quarkus.ModelRequestSerializationCallback \ No newline at end of file diff --git a/model/tools/maven-plugin/README.adoc b/service/tools/maven-plugin/README.adoc similarity index 100% rename from model/tools/maven-plugin/README.adoc rename to service/tools/maven-plugin/README.adoc diff --git a/model/tools/maven-plugin/pom.xml b/service/tools/maven-plugin/pom.xml similarity index 95% rename from model/tools/maven-plugin/pom.xml rename to service/tools/maven-plugin/pom.xml index 8e6160f742a..7541c04a5ac 100644 --- a/model/tools/maven-plugin/pom.xml +++ b/service/tools/maven-plugin/pom.xml @@ -5,7 +5,7 @@ ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../../pom.xml @@ -14,7 +14,7 @@ timefold-maven-plugin maven-plugin - (Preview) Timefold Solver Model Maven Plugin + (Preview) Timefold Solver Service Maven Plugin ${maven.version} diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AbstractPlatformModelMojo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AbstractPlatformModelMojo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AbstractPlatformModelMojo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AbstractPlatformModelMojo.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AccessTokenProvider.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AccessTokenProvider.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AccessTokenProvider.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/AccessTokenProvider.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/ConfigureMojo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/ConfigureMojo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/ConfigureMojo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/ConfigureMojo.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/DeployModelMojo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/DeployModelMojo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/DeployModelMojo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/DeployModelMojo.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/UndeployModelMojo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/UndeployModelMojo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/UndeployModelMojo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/UndeployModelMojo.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/ConfigurationInfo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/ConfigurationInfo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/ConfigurationInfo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/ConfigurationInfo.java diff --git a/model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/PlatformIdentityInfo.java b/service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/PlatformIdentityInfo.java similarity index 100% rename from model/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/PlatformIdentityInfo.java rename to service/tools/maven-plugin/src/main/java/ai/timefold/solver/tools/maven/client/PlatformIdentityInfo.java diff --git a/model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/ConfigureMojoTest.java b/service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/ConfigureMojoTest.java similarity index 100% rename from model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/ConfigureMojoTest.java rename to service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/ConfigureMojoTest.java diff --git a/model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/DeployModelMojoTest.java b/service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/DeployModelMojoTest.java similarity index 100% rename from model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/DeployModelMojoTest.java rename to service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/DeployModelMojoTest.java diff --git a/model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/TestAccessTokenProvider.java b/service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/TestAccessTokenProvider.java similarity index 100% rename from model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/TestAccessTokenProvider.java rename to service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/TestAccessTokenProvider.java diff --git a/model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/UndeployModelMojoTest.java b/service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/UndeployModelMojoTest.java similarity index 100% rename from model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/UndeployModelMojoTest.java rename to service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/UndeployModelMojoTest.java diff --git a/model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/utils/InMemoryMojoLog.java b/service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/utils/InMemoryMojoLog.java similarity index 100% rename from model/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/utils/InMemoryMojoLog.java rename to service/tools/maven-plugin/src/test/java/ai/timefold/solver/tools/maven/utils/InMemoryMojoLog.java diff --git a/model/tools/maven-plugin/src/test/resources/model-descriptor.zip b/service/tools/maven-plugin/src/test/resources/model-descriptor.zip similarity index 100% rename from model/tools/maven-plugin/src/test/resources/model-descriptor.zip rename to service/tools/maven-plugin/src/test/resources/model-descriptor.zip diff --git a/model/tools/maven-plugin/src/test/resources/project-to-test/pom-shared.xml b/service/tools/maven-plugin/src/test/resources/project-to-test/pom-shared.xml similarity index 100% rename from model/tools/maven-plugin/src/test/resources/project-to-test/pom-shared.xml rename to service/tools/maven-plugin/src/test/resources/project-to-test/pom-shared.xml diff --git a/model/tools/maven-plugin/src/test/resources/project-to-test/pom.xml b/service/tools/maven-plugin/src/test/resources/project-to-test/pom.xml similarity index 100% rename from model/tools/maven-plugin/src/test/resources/project-to-test/pom.xml rename to service/tools/maven-plugin/src/test/resources/project-to-test/pom.xml diff --git a/model/worker/pom.xml b/service/worker/pom.xml similarity index 86% rename from model/worker/pom.xml rename to service/worker/pom.xml index 38c6cfc2fc6..ea775e993fb 100644 --- a/model/worker/pom.xml +++ b/service/worker/pom.xml @@ -2,13 +2,13 @@ 4.0.0 ai.timefold.solver - timefold-solver-model-internal-parent + timefold-solver-service-internal-parent ${revision} ../pom.xml - timefold-solver-model-worker - (Preview) Timefold Solver Model Solver Worker + timefold-solver-service-worker + (Preview) Timefold Solver Service Solver Worker This module provides a standard execution of the Solver engine. This module is in a preview state and thus is a subject to changes. @@ -17,7 +17,7 @@ ai.timefold.solver - timefold-solver-model-definition + timefold-solver-service-definition ai.timefold.solver diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/CompletionStatus.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/CompletionStatus.java similarity index 94% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/CompletionStatus.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/CompletionStatus.java index d82552030cc..6d789f6460f 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/CompletionStatus.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/CompletionStatus.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl; +package ai.timefold.solver.service.worker.impl; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CountDownLatch; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownExecutor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownExecutor.java similarity index 96% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownExecutor.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownExecutor.java index eabd225bdc1..b2298f3be68 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownExecutor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownExecutor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl; +package ai.timefold.solver.service.worker.impl; import java.time.Duration; import java.util.concurrent.Executors; @@ -11,7 +11,7 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.stats.StatisticsCollector; +import ai.timefold.solver.service.definition.internal.stats.StatisticsCollector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownOnTerminate.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownOnTerminate.java similarity index 92% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownOnTerminate.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownOnTerminate.java index 4ff35ba19d2..e2008c2c2cf 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/ShutdownOnTerminate.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/ShutdownOnTerminate.java @@ -1,12 +1,12 @@ -package ai.timefold.solver.model.worker.impl; +package ai.timefold.solver.service.worker.impl; import java.time.Duration; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.definition.internal.platform.EnvironmentVars; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java similarity index 90% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorker.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index 8ec5eec8a50..0f8b0ca1257 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -1,8 +1,8 @@ -package ai.timefold.solver.model.worker.impl; +package ai.timefold.solver.service.worker.impl; -import static ai.timefold.solver.model.definition.internal.error.ErrorCodes.SOLVER_UNKNOWN; -import static ai.timefold.solver.model.definition.internal.platform.EnvironmentVars.ENV_TIMEFOLD_PLAN_NAME; -import static ai.timefold.solver.model.definition.internal.platform.EnvironmentVars.ENV_TIMEFOLD_TENANT_NAME; +import static ai.timefold.solver.service.definition.internal.error.ErrorCodes.SOLVER_UNKNOWN; +import static ai.timefold.solver.service.definition.internal.platform.EnvironmentVars.ENV_TIMEFOLD_PLAN_NAME; +import static ai.timefold.solver.service.definition.internal.platform.EnvironmentVars.ENV_TIMEFOLD_TENANT_NAME; import java.time.Duration; import java.util.List; @@ -28,51 +28,51 @@ import ai.timefold.solver.core.api.solver.SolverStatus; import ai.timefold.solver.core.api.solver.event.EventProducerId; import ai.timefold.solver.core.api.solver.event.NewBestSolutionEvent; -import ai.timefold.solver.model.definition.api.ModelConvertor; -import ai.timefold.solver.model.definition.api.ModelConvertorBase; -import ai.timefold.solver.model.definition.api.ModelInput; -import ai.timefold.solver.model.definition.api.ModelOutput; -import ai.timefold.solver.model.definition.api.ModelPostProcessor; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.SolvingStatus; -import ai.timefold.solver.model.definition.api.Status; -import ai.timefold.solver.model.definition.api.domain.Configuration; -import ai.timefold.solver.model.definition.api.domain.Metadata; -import ai.timefold.solver.model.definition.api.domain.ModelConfig; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnricherService; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnrichmentDirectorService; -import ai.timefold.solver.model.definition.api.metrics.InputMetricsAware; -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.metrics.OutputMetricsAware; -import ai.timefold.solver.model.definition.api.validation.LegacyValidationResult; -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.dto.ValidationResult; -import ai.timefold.solver.model.definition.internal.MapEnrichmentContext; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.ItemNotFoundException; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.definition.internal.events.AbstractEvent; -import ai.timefold.solver.model.definition.internal.events.BestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetComputedEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetValidateComputeCommand; -import ai.timefold.solver.model.definition.internal.events.DatasetValidatedEvent; -import ai.timefold.solver.model.definition.internal.events.FailedSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.FinalBestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.ItemCompleted; -import ai.timefold.solver.model.definition.internal.events.ItemFailed; -import ai.timefold.solver.model.definition.internal.events.ItemStarted; -import ai.timefold.solver.model.definition.internal.events.ItemTerminated; -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.platform.EnvironmentVars; -import ai.timefold.solver.model.definition.internal.platform.OnStartCommand; -import ai.timefold.solver.model.definition.internal.solver.BestSolutionConsumerDecorator; -import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService; -import ai.timefold.solver.model.worker.impl.termination.TerminationService; +import ai.timefold.solver.service.definition.api.ModelConvertor; +import ai.timefold.solver.service.definition.api.ModelConvertorBase; +import ai.timefold.solver.service.definition.api.ModelInput; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.ModelPostProcessor; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.api.Status; +import ai.timefold.solver.service.definition.api.domain.Configuration; +import ai.timefold.solver.service.definition.api.domain.Metadata; +import ai.timefold.solver.service.definition.api.domain.ModelConfig; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.api.metrics.InputMetricsAware; +import ai.timefold.solver.service.definition.api.metrics.ModelInputMetrics; +import ai.timefold.solver.service.definition.api.metrics.ModelOutputMetrics; +import ai.timefold.solver.service.definition.api.metrics.OutputMetricsAware; +import ai.timefold.solver.service.definition.api.validation.LegacyValidationResult; +import ai.timefold.solver.service.definition.api.validation.ModelValidator; +import ai.timefold.solver.service.definition.api.validation.ValidationBuilder; +import ai.timefold.solver.service.definition.api.validation.dto.ValidationResult; +import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.ItemNotFoundException; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.events.AbstractEvent; +import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetValidateComputeCommand; +import ai.timefold.solver.service.definition.internal.events.DatasetValidatedEvent; +import ai.timefold.solver.service.definition.internal.events.FailedSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.ItemCompleted; +import ai.timefold.solver.service.definition.internal.events.ItemFailed; +import ai.timefold.solver.service.definition.internal.events.ItemStarted; +import ai.timefold.solver.service.definition.internal.events.ItemTerminated; +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.platform.EnvironmentVars; +import ai.timefold.solver.service.definition.internal.platform.OnStartCommand; +import ai.timefold.solver.service.definition.internal.solver.BestSolutionConsumerDecorator; +import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.worker.impl.termination.TerminationService; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.reactive.messaging.Acknowledgment; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorkerJobState.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java similarity index 97% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorkerJobState.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java index c0bde7b13d8..9c968679b82 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/SolverWorkerJobState.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorkerJobState.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl; +package ai.timefold.solver.service.worker.impl; import java.time.Duration; import java.util.List; @@ -9,7 +9,7 @@ import ai.timefold.solver.core.api.solver.SolverJob; import ai.timefold.solver.core.api.solver.SolverStatus; import ai.timefold.solver.core.api.solver.change.ProblemChange; -import ai.timefold.solver.model.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.SolverModel; /** * This class aims to only copy the current state of a SolverJob without replicating any behaviour. diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/audit/AuditListener.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java similarity index 72% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/audit/AuditListener.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java index bcca54e0a76..e2fd7230d46 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/audit/AuditListener.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/audit/AuditListener.java @@ -1,20 +1,20 @@ -package ai.timefold.solver.model.worker.impl.audit; +package ai.timefold.solver.service.worker.impl.audit; import jakarta.enterprise.context.ApplicationScoped; -import ai.timefold.solver.model.definition.api.SolvingStatus; -import ai.timefold.solver.model.definition.internal.events.BestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetComputedEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetCreatedEvent; -import ai.timefold.solver.model.definition.internal.events.DatasetValidatedEvent; -import ai.timefold.solver.model.definition.internal.events.FailedSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.FinalBestSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.InitSolutionEvent; -import ai.timefold.solver.model.definition.internal.events.ItemCompleted; -import ai.timefold.solver.model.definition.internal.events.ItemFailed; -import ai.timefold.solver.model.definition.internal.events.ItemStarted; -import ai.timefold.solver.model.definition.internal.events.ItemTerminated; -import ai.timefold.solver.model.definition.internal.events.SolverChannels; +import ai.timefold.solver.service.definition.api.SolvingStatus; +import ai.timefold.solver.service.definition.internal.events.BestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetComputedEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetCreatedEvent; +import ai.timefold.solver.service.definition.internal.events.DatasetValidatedEvent; +import ai.timefold.solver.service.definition.internal.events.FailedSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.FinalBestSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.InitSolutionEvent; +import ai.timefold.solver.service.definition.internal.events.ItemCompleted; +import ai.timefold.solver.service.definition.internal.events.ItemFailed; +import ai.timefold.solver.service.definition.internal.events.ItemStarted; +import ai.timefold.solver.service.definition.internal.events.ItemTerminated; +import ai.timefold.solver.service.definition.internal.events.SolverChannels; import org.eclipse.microprofile.reactive.messaging.Incoming; import org.slf4j.Logger; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnricherServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java similarity index 71% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnricherServiceImpl.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java index 06589735acb..6aa54eed080 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnricherServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnricherServiceImpl.java @@ -1,14 +1,14 @@ -package ai.timefold.solver.model.worker.impl.enrich; +package ai.timefold.solver.service.worker.impl.enrich; import java.util.List; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnricher; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnricherBase; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnricherService; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherBase; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricherService; import io.quarkus.arc.All; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java similarity index 86% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java index 71c74405d2b..fdc6a2f2e76 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/enrich/SolverModelEnrichmentDirectorServiceImpl.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.enrich; +package ai.timefold.solver.service.worker.impl.enrich; import java.util.Arrays; import java.util.List; @@ -6,10 +6,10 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnrichmentDirector; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnrichmentDirectorBase; -import ai.timefold.solver.model.definition.api.enrichment.SolverModelEnrichmentDirectorService; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirector; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorBase; +import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnrichmentDirectorService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/log/LogsPostProcessor.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java similarity index 86% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/log/LogsPostProcessor.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java index 18e46cf8657..f4c11295700 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/log/LogsPostProcessor.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/log/LogsPostProcessor.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.log; +package ai.timefold.solver.service.worker.impl.log; import java.io.IOException; import java.io.PrintWriter; @@ -14,13 +14,13 @@ import jakarta.inject.Inject; import ai.timefold.solver.core.api.score.stream.ConstraintJustification; -import ai.timefold.solver.model.definition.api.ModelOutput; -import ai.timefold.solver.model.definition.api.ModelPostProcessor; -import ai.timefold.solver.model.definition.api.SolverModel; -import ai.timefold.solver.model.definition.api.log.LogInfo; -import ai.timefold.solver.model.definition.impl.log.LoggingConstants; -import ai.timefold.solver.model.definition.internal.platform.EnvironmentVars; -import ai.timefold.solver.model.definition.internal.storage.AbstractStorageService; +import ai.timefold.solver.service.definition.api.ModelOutput; +import ai.timefold.solver.service.definition.api.ModelPostProcessor; +import ai.timefold.solver.service.definition.api.SolverModel; +import ai.timefold.solver.service.definition.api.log.LogInfo; +import ai.timefold.solver.service.definition.impl.log.LoggingConstants; +import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; +import ai.timefold.solver.service.definition.internal.storage.AbstractStorageService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/metrics/PlatformMetricsMeterFilter.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/metrics/PlatformMetricsMeterFilter.java similarity index 96% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/metrics/PlatformMetricsMeterFilter.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/metrics/PlatformMetricsMeterFilter.java index 6e206d49c45..4ebfcf1a83e 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/metrics/PlatformMetricsMeterFilter.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/metrics/PlatformMetricsMeterFilter.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.metrics; +package ai.timefold.solver.service.worker.impl.metrics; import java.util.ArrayList; import java.util.List; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/monitoring/GcOverheadMonitoring.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/GcOverheadMonitoring.java similarity index 91% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/monitoring/GcOverheadMonitoring.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/GcOverheadMonitoring.java index 103b6640598..eb1051caea8 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/monitoring/GcOverheadMonitoring.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/monitoring/GcOverheadMonitoring.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.monitoring; +package ai.timefold.solver.service.worker.impl.monitoring; import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; @@ -12,10 +12,10 @@ import jakarta.enterprise.event.Observes; import jakarta.inject.Inject; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; -import ai.timefold.solver.model.definition.internal.platform.EnvironmentVars; -import ai.timefold.solver.model.worker.impl.SolverWorker; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.internal.platform.EnvironmentVars; +import ai.timefold.solver.service.worker.impl.SolverWorker; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationConfigParams.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationConfigParams.java similarity index 92% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationConfigParams.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationConfigParams.java index d447af5a945..9e68d63e6ba 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationConfigParams.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationConfigParams.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.termination; +package ai.timefold.solver.service.worker.impl.termination; public class TerminationConfigParams { diff --git a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationService.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java similarity index 94% rename from model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationService.java rename to service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java index d1c3039c565..55168515144 100644 --- a/model/worker/src/main/java/ai/timefold/solver/model/worker/impl/termination/TerminationService.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/termination/TerminationService.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.termination; +package ai.timefold.solver.service.worker.impl.termination; import static java.util.Objects.requireNonNullElse; @@ -14,9 +14,9 @@ import ai.timefold.solver.core.config.solver.termination.DiminishedReturnsTerminationConfig; import ai.timefold.solver.core.config.solver.termination.TerminationCompositionStyle; import ai.timefold.solver.core.config.solver.termination.TerminationConfig; -import ai.timefold.solver.model.definition.api.termination.SolverTerminationConfig; -import ai.timefold.solver.model.definition.internal.error.ErrorCodes; -import ai.timefold.solver.model.definition.internal.error.TimefoldRuntimeException; +import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.internal.error.ErrorCodes; +import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; diff --git a/model/worker/src/test/java/ai/timefold/solver/model/worker/impl/termination/TerminationServiceTest.java b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java similarity index 96% rename from model/worker/src/test/java/ai/timefold/solver/model/worker/impl/termination/TerminationServiceTest.java rename to service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java index 2115b591494..dc4372a6772 100644 --- a/model/worker/src/test/java/ai/timefold/solver/model/worker/impl/termination/TerminationServiceTest.java +++ b/service/worker/src/test/java/ai/timefold/solver/service/worker/impl/termination/TerminationServiceTest.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.model.worker.impl.termination; +package ai.timefold.solver.service.worker.impl.termination; import static org.assertj.core.api.Assertions.assertThat; @@ -7,7 +7,7 @@ import ai.timefold.solver.core.config.solver.termination.TerminationCompositionStyle; import ai.timefold.solver.core.config.solver.termination.TerminationConfig; -import ai.timefold.solver.model.definition.api.termination.SolverTerminationConfig; +import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig; import org.junit.jupiter.api.Test;