Skip to content

Commit b3077cc

Browse files
committed
feat: add quarkus random seed
1 parent af8e567 commit b3077cc

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

quarkus-integration/quarkus/deployment/src/test/java/ai/timefold/solver/quarkus/TimefoldProcessorOverridePropertiesAtRuntimeTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ private static String getRequiredProperty(String name) {
6262
private static Map<String, String> getRuntimeProperties() {
6363
Map<String, String> out = new HashMap<>();
6464
out.put("quarkus.timefold.solver.termination.best-score-limit", "7");
65+
out.put("quarkus.timefold.solver.random-seed", "123");
6566
out.put("quarkus.timefold.solver.move-thread-count", "3");
6667
out.put("quarkus.timefold.solver-manager.parallel-solver-count", "10");
6768
out.put("quarkus.timefold.solver.termination.diminished-returns.enabled", "true");
@@ -90,11 +91,13 @@ public String getSolverConfig() {
9091
termination.diminished-returns.minimum-improvement-ratio=%s
9192
termination.bestScoreLimit=%s
9293
moveThreadCount=%s
94+
randomSeed=%d
9395
"""
9496
.formatted(diminishedReturnsConfig.getSlidingWindowDuration().toHours(),
9597
diminishedReturnsConfig.getMinimumImprovementRatio(),
9698
solverConfig.getTerminationConfig().getBestScoreLimit(),
97-
solverConfig.getMoveThreadCount());
99+
solverConfig.getMoveThreadCount(),
100+
123);
98101
}
99102

100103
@GET
@@ -120,6 +123,7 @@ void solverConfigPropertiesShouldBeOverwritten() throws IOException {
120123
assertEquals("0.5", solverConfigProperties.get("termination.diminished-returns.minimum-improvement-ratio"));
121124
assertEquals("7", solverConfigProperties.get("termination.bestScoreLimit"));
122125
assertEquals("3", solverConfigProperties.get("moveThreadCount"));
126+
assertEquals("123", solverConfigProperties.get("randomSeed"));
123127
}
124128

125129
@Test

quarkus-integration/quarkus/runtime/src/main/java/ai/timefold/solver/quarkus/TimefoldRecorder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ public static void updateSolverConfigWithRuntimeProperties(SolverConfig solverCo
136136
.ifPresent(solverConfig::setDaemon);
137137
maybeSolverRuntimeConfig.flatMap(SolverRuntimeConfig::moveThreadCount)
138138
.ifPresent(solverConfig::setMoveThreadCount);
139+
maybeSolverRuntimeConfig.flatMap(SolverRuntimeConfig::randomSeed)
140+
.ifPresent(solverConfig::setRandomSeed);
139141
maybeSolverRuntimeConfig.flatMap(config -> config.termination().diminishedReturns())
140142
.ifPresent(diminishedReturnsConfig -> setDiminishedReturns(solverConfig, diminishedReturnsConfig));
141143
}

quarkus-integration/quarkus/runtime/src/main/java/ai/timefold/solver/quarkus/config/SolverRuntimeConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,9 @@ public interface SolverRuntimeConfig {
4343
* Configuration properties that overwrite {@link TerminationConfig}.
4444
*/
4545
TerminationRuntimeConfig termination();
46+
47+
/**
48+
* Configuration of the random seed.
49+
*/
50+
Optional<Long> randomSeed();
4651
}

0 commit comments

Comments
 (0)