From 501349d8846d0659cd947ba031ffcf2af17abb16 Mon Sep 17 00:00:00 2001 From: rsynek Date: Tue, 13 Oct 2026 13:16:38 +0200 Subject: [PATCH] chore: remove the MapEnrichmentContext bean from definition --- .../impl/enrichment/MapEnrichmentContext.java | 17 +++++++++++++++++ .../storage/StorageObjectMapperProducer.java | 2 ++ .../internal/MapEnrichmentContext.java | 17 ----------------- .../src/build/revapi-differences.json | 9 ++++++++- .../client/api/TravelTimeMatrixEnricher.java | 2 +- .../MapEnrichmentContextProducer.java | 16 ++++++++++++++++ .../api/TravelTimeMatrixEnricherTest.java | 2 +- .../TravelTimeMatrixEnricherTrafficTest.java | 2 +- .../service/worker/impl/SolverWorker.java | 7 ++++--- 9 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/impl/enrichment/MapEnrichmentContext.java delete mode 100644 service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java create mode 100644 service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/enrichment/MapEnrichmentContextProducer.java diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/enrichment/MapEnrichmentContext.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/enrichment/MapEnrichmentContext.java new file mode 100644 index 00000000000..27753f872de --- /dev/null +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/enrichment/MapEnrichmentContext.java @@ -0,0 +1,17 @@ +package ai.timefold.solver.service.definition.impl.enrichment; + +/** + * Stores the resolved map region during the enrichment phase to be sent over to the Platform later. + */ +public final class MapEnrichmentContext { + + private String resolvedMapLocation; + + public void setResolvedMapLocation(String location) { + resolvedMapLocation = location; + } + + public String getResolvedMapLocation() { + return this.resolvedMapLocation; + } +} diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageObjectMapperProducer.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageObjectMapperProducer.java index 5adc09bd871..2b27d29458a 100644 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageObjectMapperProducer.java +++ b/service/definition/src/main/java/ai/timefold/solver/service/definition/impl/storage/StorageObjectMapperProducer.java @@ -1,5 +1,6 @@ package ai.timefold.solver.service.definition.impl.storage; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.inject.Produces; import jakarta.inject.Inject; @@ -10,6 +11,7 @@ /** * Produces StorageObjectMapper instances with storage-specific (de)serialization settings. */ +@ApplicationScoped public class StorageObjectMapperProducer { private ObjectMapper quarkusObjectMapper; diff --git a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java b/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java deleted file mode 100644 index a757d494328..00000000000 --- a/service/definition/src/main/java/ai/timefold/solver/service/definition/internal/MapEnrichmentContext.java +++ /dev/null @@ -1,17 +0,0 @@ -package ai.timefold.solver.service.definition.internal; - -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class MapEnrichmentContext { - - private String resolvedMapLocation; - - public void setResolvedMapLocation(String location) { - this.resolvedMapLocation = location; - } - - public String getResolvedMapLocation() { - return this.resolvedMapLocation; - } -} diff --git a/service/maps/service-client/src/build/revapi-differences.json b/service/maps/service-client/src/build/revapi-differences.json index f67093bfc47..1d757ef6df3 100644 --- a/service/maps/service-client/src/build/revapi-differences.json +++ b/service/maps/service-client/src/build/revapi-differences.json @@ -3,7 +3,14 @@ "extension": "revapi.differences", "configuration": { "differences": [ - + { + "ignore": true, + "code": "java.method.parameterTypeChanged", + "old": "parameter void ai.timefold.solver.service.maps.service.client.api.TravelTimeMatrixEnricher::(ai.timefold.solver.service.maps.service.client.api.MapService, ai.timefold.solver.service.maps.service.client.impl.MapServiceOptionsSupplier, ===ai.timefold.solver.service.definition.internal.MapEnrichmentContext===, java.lang.Boolean)", + "new": "parameter void ai.timefold.solver.service.maps.service.client.api.TravelTimeMatrixEnricher::(ai.timefold.solver.service.maps.service.client.api.MapService, ai.timefold.solver.service.maps.service.client.impl.MapServiceOptionsSupplier, ===ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext===, java.lang.Boolean)", + "parameterIndex": "2", + "justification": "TravelTimeMatrixEnricher constructor does not belong to a public API." + } ] } } diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java index dd8402b5ecb..cf4d9447656 100644 --- a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricher.java @@ -11,7 +11,7 @@ import jakarta.inject.Inject; import ai.timefold.solver.service.definition.api.enrichment.SolverModelEnricher; -import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; import ai.timefold.solver.service.definition.internal.error.ErrorCodes; import ai.timefold.solver.service.definition.internal.error.TimefoldRuntimeException; import ai.timefold.solver.service.maps.api.DistanceMatrix; diff --git a/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/enrichment/MapEnrichmentContextProducer.java b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/enrichment/MapEnrichmentContextProducer.java new file mode 100644 index 00000000000..c63d306bc98 --- /dev/null +++ b/service/maps/service-client/src/main/java/ai/timefold/solver/service/maps/service/client/impl/enrichment/MapEnrichmentContextProducer.java @@ -0,0 +1,16 @@ +package ai.timefold.solver.service.maps.service.client.impl.enrichment; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.Produces; + +import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; + +@ApplicationScoped +public class MapEnrichmentContextProducer { + + @Produces + @ApplicationScoped + public MapEnrichmentContext produceMapEnrichmentContext() { + return new MapEnrichmentContext(); + } +} diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java index 70c5d8ffa25..e376942b638 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTest.java @@ -6,7 +6,7 @@ import jakarta.inject.Inject; -import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.definition.impl.enrichment.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; diff --git a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTrafficTest.java b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTrafficTest.java index fc4ae177378..9bbfd797754 100644 --- a/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTrafficTest.java +++ b/service/maps/service-client/src/test/java/ai/timefold/solver/service/maps/service/client/api/TravelTimeMatrixEnricherTrafficTest.java @@ -12,7 +12,7 @@ import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.score.HardSoftScore; -import ai.timefold.solver.service.definition.internal.MapEnrichmentContext; +import ai.timefold.solver.service.definition.impl.enrichment.MapEnrichmentContext; 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; diff --git a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java index 6ebce7e9820..b0cdb857306 100644 --- a/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java +++ b/service/worker/src/main/java/ai/timefold/solver/service/worker/impl/SolverWorker.java @@ -52,7 +52,7 @@ 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.impl.enrichment.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; @@ -183,7 +183,7 @@ public SolverWorker(@ConfigProperty(name = "timefold.model.name") Optional mapEnrichmentContext, TerminationService terminationService, ShutdownExecutor shutdownExecutor, ShutdownOnTerminate shutdownOnTerminate, @@ -210,7 +210,8 @@ public SolverWorker(@ConfigProperty(name = "timefold.model.name") Optional