2828import ai .timefold .solver .core .api .solver .SolverStatus ;
2929import ai .timefold .solver .core .api .solver .event .EventProducerId ;
3030import ai .timefold .solver .core .api .solver .event .NewBestSolutionEvent ;
31- import ai .timefold .solver .core .config .solver .termination .TerminationConfig ;
3231import ai .timefold .solver .model .definition .api .ModelConvertor ;
3332import ai .timefold .solver .model .definition .api .ModelConvertorBase ;
3433import ai .timefold .solver .model .definition .api .ModelInput ;
@@ -228,14 +227,14 @@ public SolverWorker(@ConfigProperty(name = "timefold.application.name") Optional
228227
229228 private void reportExecutionEnvironmentInfo () {
230229
231- String nodeName = System .getenv (EnvironmentVars .K8S_INFO_NODE_NAME );
232- String memoryLimit = System .getenv (EnvironmentVars .K8S_INFO_MEMORY_LIMIT );
233- String totalMemory = String .valueOf (Runtime .getRuntime ().maxMemory ());
230+ var nodeName = System .getenv (EnvironmentVars .K8S_INFO_NODE_NAME );
231+ var memoryLimit = System .getenv (EnvironmentVars .K8S_INFO_MEMORY_LIMIT );
232+ var totalMemory = String .valueOf (Runtime .getRuntime ().maxMemory ());
234233
235- String java = System .getProperty ("java.version" );
236- String osArch = System .getProperty ("os.arch" );
237- String os = System .getProperty ("os.name" );
238- String cores = String .valueOf (Runtime .getRuntime ().availableProcessors ());
234+ var java = System .getProperty ("java.version" );
235+ var osArch = System .getProperty ("os.arch" );
236+ var os = System .getProperty ("os.name" );
237+ var cores = String .valueOf (Runtime .getRuntime ().availableProcessors ());
239238
240239 if (modelName .isPresent () && modelVersion .isPresent () && applicationVersion .isPresent ()) {
241240 LOGGER .info ("Model {} {} ({})" , modelName .get (), modelVersion .get (), applicationVersion .get ());
@@ -265,8 +264,8 @@ private void sendEvent(Emitter emitter, AbstractEvent event) {
265264 */
266265 public void onStart (@ Observes StartupEvent event ) {
267266 reportExecutionEnvironmentInfo ();
268- String id = System .getenv (EnvironmentVars .ENV_TIMEFOLD_JOB_ID );
269- String onStartCommandEnv = System .getenv (EnvironmentVars .ENV_TIMEFOLD_ON_START_COMMAND );
267+ var id = System .getenv (EnvironmentVars .ENV_TIMEFOLD_JOB_ID );
268+ var onStartCommandEnv = System .getenv (EnvironmentVars .ENV_TIMEFOLD_ON_START_COMMAND );
270269 if (id == null && onStartCommandEnv == null ) {
271270 LOGGER .atDebug ().log ("No environment variables specified; assuming the solver worked is running locally." );
272271 return ;
@@ -281,7 +280,7 @@ public void onStart(@Observes StartupEvent event) {
281280 true );
282281 }
283282
284- OnStartCommand onStartCommand = OnStartCommand .valueOf (onStartCommandEnv );
283+ var onStartCommand = OnStartCommand .valueOf (onStartCommandEnv );
285284
286285 if (onStartCommand == OnStartCommand .IDLE ) {
287286 startIdle ();
@@ -294,7 +293,7 @@ public void onStart(@Observes StartupEvent event) {
294293 true );
295294 }
296295
297- Metadata metadata = storageService .getMetadata (id );
296+ var metadata = storageService .getMetadata (id );
298297 // if the dataset is in any of the final states, return/shutdown immediately
299298 if (metadata .getSolverStatus () == SolvingStatus .DATASET_INVALID
300299 || metadata .getSolverStatus () == SolvingStatus .SOLVING_FAILED
@@ -331,8 +330,8 @@ public void onStart(@Observes StartupEvent event) {
331330 * {@link EnvironmentVars#ENV_TIMEFOLD_IDLE_RUNTIME_TTL}.
332331 */
333332 private void startIdle () {
334- Duration shutdownDelay = Duration .ofMinutes (10 );
335- String delayDurationEnv = System .getenv (EnvironmentVars .ENV_TIMEFOLD_IDLE_RUNTIME_TTL );
333+ var shutdownDelay = Duration .ofMinutes (10 );
334+ var delayDurationEnv = System .getenv (EnvironmentVars .ENV_TIMEFOLD_IDLE_RUNTIME_TTL );
336335 if (delayDurationEnv != null ) {
337336 shutdownDelay = Duration .parse (delayDurationEnv );
338337 }
@@ -342,22 +341,22 @@ private void startIdle() {
342341 private void computeOutputs (String id ) {
343342 LOGGER .info ("Requesting solver for id {} to compute outputs..." , id );
344343 try {
345- Metadata metadata = storageService .getMetadata (id );
346- ModelInput modelInput = storageService .getModelInput (id );
344+ var metadata = storageService .getMetadata (id );
345+ var modelInput = storageService .getModelInput (id );
347346 if (modelInput == null ) {
348347 logUnreadableInput (id );
349348 return ;
350349 }
351- Configuration configuration = storageService .getConfiguration (id );
350+ var configuration = storageService .getConfiguration (id );
352351
353- ModelConfig modelConfig = Configuration .getSafeModelConfig (configuration );
352+ var modelConfig = Configuration .getSafeModelConfig (configuration );
354353
355- SolverModel solverModel = createSolverModel (modelInput , modelConfig );
354+ var solverModel = createSolverModel (modelInput , modelConfig );
356355 applyResolvedMapLocation (metadata );
357356 solutionManager .update (solverModel );
358357
359358 // Store the updated solution
360- ModelOutput modelOutput = convertToModelOutput (id , solverModel );
359+ var modelOutput = convertToModelOutput (id , solverModel );
361360 metadata .datasetComputed ();
362361 storageService .storeSolution (id , modelOutput , metadata , extractInputMetrics (solverModel ),
363362 extractOutputMetrics (solverModel ));
@@ -406,19 +405,19 @@ private void startSolvingOnApplicationStart(String id) {
406405 * @param configuration the configuration to use; can be null
407406 */
408407 private void solve (Metadata metadata , ModelInput modelInput , Configuration configuration ) {
409- final String id = metadata .getId ();
408+ final var id = metadata .getId ();
410409 LOGGER .info ("Requesting solver for id {} to start..." , id );
411410 try {
412- TerminationConfig terminationConfig =
411+ var terminationConfig =
413412 terminationService .resolveTerminationConfig (
414413 (configuration == null || configuration .run () == null ) ? null : configuration .run ().termination ());
415- SolverConfigOverride solverConfigOverride = new SolverConfigOverride ()
414+ var solverConfigOverride = new SolverConfigOverride ()
416415 .withTerminationConfig (terminationConfig );
417416
418- ModelConfig modelConfig = Configuration .getSafeModelConfig (configuration );
417+ var modelConfig = Configuration .getSafeModelConfig (configuration );
419418
420419 var previousModelOutput = loadModelOutput (id );
421- SolverJob < SolverModel > job = solverManager .solveBuilder ()
420+ var job = solverManager .solveBuilder ()
422421 .withProblemFinder (id_ -> notifyOnStart ((String ) id_ , modelInput , previousModelOutput , modelConfig ))
423422 .withConfigOverride (solverConfigOverride )
424423 .withProblemId (id )
@@ -436,7 +435,7 @@ private void solve(Metadata metadata, ModelInput modelInput, Configuration confi
436435 }
437436
438437 private LegacyValidationResult validateAndUpdateRun (String id ) {
439- Metadata metadata = storageService .getMetadata (id );
438+ var metadata = storageService .getMetadata (id );
440439
441440 if (metadata .getSolverStatus () == SolvingStatus .DATASET_VALIDATED
442441 || metadata .getSolverStatus () == SolvingStatus .SOLVING_ACTIVE
@@ -445,7 +444,7 @@ private LegacyValidationResult validateAndUpdateRun(String id) {
445444 return LegacyValidationResult .successful ();
446445 }
447446
448- ModelInput modelInput = storageService .getModelInput (id );
447+ var modelInput = storageService .getModelInput (id );
449448 if (modelInput == null ) {
450449 logUnreadableInput (id );
451450 /*
@@ -456,14 +455,14 @@ private LegacyValidationResult validateAndUpdateRun(String id) {
456455 }
457456
458457 var modelConfig = Configuration .getSafeModelConfig (storageService .getConfiguration (id ));
459- ValidationBuilder validationBuilder = new ValidationBuilder ();
458+ var validationBuilder = new ValidationBuilder ();
460459 modelValidator .validate (validationBuilder , modelInput , modelConfig );
461460
462461 // We store both the new and old validation result format for backward compatibility.
463462 ValidationResult validationResponse = validationBuilder .build ();
464463 storageService .storeValidationResponse (id , validationResponse );
465464
466- LegacyValidationResult legacyValidationResult = validationBuilder .buildLegacyValidationResult ();
465+ var legacyValidationResult = validationBuilder .buildLegacyValidationResult ();
467466 metadata .datasetValidated (legacyValidationResult );
468467 storageService .updateMetadata (metadata .getId (), metadata );
469468
@@ -473,7 +472,7 @@ private LegacyValidationResult validateAndUpdateRun(String id) {
473472
474473 public void onShutdown (@ Observes ShutdownEvent event ) {
475474 this .shuttingDown .set (true );
476- String id = System .getenv (EnvironmentVars .ENV_TIMEFOLD_JOB_ID );
475+ var id = System .getenv (EnvironmentVars .ENV_TIMEFOLD_JOB_ID );
477476 if (id != null ) {
478477
479478 try {
@@ -488,7 +487,7 @@ public void onShutdown(@Observes ShutdownEvent event) {
488487 @ Blocking
489488 @ Acknowledgment (Acknowledgment .Strategy .PRE_PROCESSING )
490489 public void onDatasetValidateComputeCommand (DatasetValidateComputeCommand command ) {
491- final String id = command .getId ();
490+ final var id = command .getId ();
492491 try {
493492 if (!validateAndUpdateRun (id ).isValid ()) {
494493 LOGGER .error ("Dataset (%s) failed validation. Please check the validation results." .formatted (id ));
@@ -510,14 +509,14 @@ public void onDatasetValidateComputeCommand(DatasetValidateComputeCommand comman
510509 @ Blocking
511510 @ Acknowledgment (Acknowledgment .Strategy .PRE_PROCESSING )
512511 public void onSolveStartCommand (SolveStartCommand command ) {
513- final String id = command .getId ();
514- Metadata metadata = storageService .getMetadata (id );
515- ModelInput modelInput = storageService .getModelInput (id );
512+ final var id = command .getId ();
513+ var metadata = storageService .getMetadata (id );
514+ var modelInput = storageService .getModelInput (id );
516515 if (modelInput == null ) {
517516 logUnreadableInput (id );
518517 return ;
519518 }
520- Configuration configuration = storageService .getConfiguration (id );
519+ var configuration = storageService .getConfiguration (id );
521520
522521 processor .onNext (metadata );
523522
@@ -533,7 +532,7 @@ public void onSolveTerminateCommand(SolveTerminateCommand command) {
533532 return ;
534533 }
535534
536- String id = command .getId ();
535+ var id = command .getId ();
537536 LOGGER .info ("Request to terminate solver has been received for id {}" , id );
538537 if (!solverManager .getSolverStatus (id ).equals (SolverStatus .NOT_SOLVING )) {
539538 completionStatus .initiateCompletion (id );
@@ -566,9 +565,9 @@ public Multi<Metadata<?>> forwardLifeCycleEvent() {
566565 protected SolverModel notifyOnStart (String id , ModelInput modelInput , ModelOutput modelOutput , ModelConfig modelConfig ) {
567566 try {
568567 LOGGER .debug ("Notify run start for id {}" , id );
569- Metadata metadata = storageService .getMetadata (id );
568+ var metadata = storageService .getMetadata (id );
570569
571- SolverModel solverModel = createSolverModel (modelInput , modelConfig , modelOutput );
570+ var solverModel = createSolverModel (modelInput , modelConfig , modelOutput );
572571 applyResolvedMapLocation (metadata );
573572 if (metadata .getSolverStatus () == SolvingStatus .DATASET_COMPUTED
574573 || metadata .getSolverStatus () == SolvingStatus .SOLVING_SCHEDULED ) {
@@ -597,7 +596,7 @@ protected SolverModel notifyOnStart(String id, ModelInput modelInput, ModelOutpu
597596
598597 private SolverModel createSolverModel (ModelInput modelInput , ModelConfig modelConfig , ModelOutput modelOutput ) {
599598 try {
600- SolverModel solverModel =
599+ var solverModel =
601600 modelConvertor .toSolverModel (modelInput , modelConfig , Optional .ofNullable (modelOutput ));
602601 return enrichModel (solverModel );
603602 } catch (TimefoldRuntimeException e ) {
@@ -620,12 +619,12 @@ private SolverModel enrichModel(SolverModel solverModel) {
620619 }
621620
622621 private void applyResolvedMapLocation (Metadata metadata ) {
623- String resolved = mapEnrichmentContext .getResolvedMapLocation ();
622+ var resolved = mapEnrichmentContext .getResolvedMapLocation ();
624623 if (resolved == null || metadata == null ) {
625624 return ;
626625 }
627626 metadata .setResolvedMapLocation (resolved );
628- String configuredLocation = System .getenv (EnvironmentVars .ENV_TIMEFOLD_PLATFORM_MAP_SERVICE_LOCATION );
627+ var configuredLocation = System .getenv (EnvironmentVars .ENV_TIMEFOLD_PLATFORM_MAP_SERVICE_LOCATION );
629628 if (EnvironmentVars .MAP_SERVICE_LOCATION_AUTO_SELECT .equalsIgnoreCase (configuredLocation )) {
630629 LOGGER .info ("Auto-select map resolved to '{}' for dataset {}." , resolved , metadata .getId ());
631630 }
@@ -638,10 +637,10 @@ protected void notifyOnInit(String id, SolverModel solverModel, boolean isTermin
638637 LOGGER .warn ("Initial solution for id {} incomplete because terminated early" , id );
639638 }
640639
641- Metadata metadata = storageService .getMetadata (id );
642- SolverJob < SolverModel > solverJob = solverJobs .get (id );
640+ var metadata = storageService .getMetadata (id );
641+ var solverJob = solverJobs .get (id );
643642 if (metadata != null && SolvingStatus .SOLVING_ACTIVE == metadata .getSolverStatus () && solverJob != null ) {
644- ModelOutput modelOutput = convertToModelOutput (id , solverModel );
643+ var modelOutput = convertToModelOutput (id , solverModel );
645644
646645 metadata .updateStatusOnSave (SolvingStatus .SOLVING_ACTIVE , solverModel .getScore ());
647646 storageService .updateSolution (id , modelOutput , metadata , extractInputMetrics (solverModel ),
@@ -654,11 +653,11 @@ protected void notifyOnInit(String id, SolverModel solverModel, boolean isTermin
654653
655654 protected void notifyOnSave (String id , SolverModel solverModel , EventProducerId eventProducerId ) {
656655 LOGGER .debug ("Notify run save for id {}" , id );
657- Metadata metadata = storageService .getMetadata (id );
658- SolverJob < SolverModel > solverJob = solverJobs .get (id );
656+ var metadata = storageService .getMetadata (id );
657+ var solverJob = solverJobs .get (id );
659658 if (metadata != null && SolvingStatus .SOLVING_ACTIVE == metadata .getSolverStatus () && solverJob != null ) {
660659 processor .onNext (metadata );
661- ModelOutput modelOutput = convertToModelOutput (id , solverModel );
660+ var modelOutput = convertToModelOutput (id , solverModel );
662661
663662 metadata .updateStatusOnSave (SolvingStatus .SOLVING_ACTIVE , solverModel .getScore ());
664663 storageService .updateSolution (id , modelOutput , metadata , extractInputMetrics (solverModel ),
@@ -680,15 +679,15 @@ protected void notifyOnComplete(String id, SolverModel solverModel) {
680679 LOGGER .debug ("Notify run complete for id {}" , id );
681680 try {
682681 // remove it as the first thing so in case any best solution events will arrive while this method is executed they will be discarded
683- SolverJob < SolverModel > solverJob = solverJobs .remove (id );
682+ var solverJob = solverJobs .remove (id );
684683
685684 if (solverJob == null ) {
686685 return ;
687686 }
688- ModelOutput modelOutput = convertToModelOutput (id , solverModel );
687+ var modelOutput = convertToModelOutput (id , solverModel );
689688 storeSolvedInput (id , modelOutput );
690689
691- Metadata metadata = storageService .getMetadata (id );
690+ var metadata = storageService .getMetadata (id );
692691 if (metadata .getScore () == null ) {
693692 // If the score is null, a full solution was not found and the CH did not finish
694693 metadata .updateStatusOnComplete (SolvingStatus .SOLVING_INCOMPLETE , solverModel .getScore ());
@@ -719,7 +718,7 @@ protected void notifyOnComplete(String id, SolverModel solverModel) {
719718 * Invokes post processors of the solution to compute additional (optional) outputs, like score analysis or waypoints.
720719 */
721720 private void postProcessOutput (String id , ModelOutput modelOutput , SolverModel solverModel ) {
722- for (ModelPostProcessor processor : modelPostProcessors ) {
721+ for (var processor : modelPostProcessors ) {
723722 try {
724723 processor .processComputed (modelOutput , solverModel , id );
725724 } catch (Throwable e ) {
@@ -730,7 +729,7 @@ private void postProcessOutput(String id, ModelOutput modelOutput, SolverModel s
730729 }
731730
732731 private void postProcessCompleteOutput (String id , ModelOutput modelOutput , SolverModel solverModel ) {
733- for (ModelPostProcessor processor : modelPostProcessors ) {
732+ for (var processor : modelPostProcessors ) {
734733 try {
735734 processor .process (modelOutput , solverModel , id );
736735 } catch (Throwable e ) {
@@ -741,21 +740,21 @@ private void postProcessCompleteOutput(String id, ModelOutput modelOutput, Solve
741740 }
742741
743742 private void storeSolvedInput (String datasetId , ModelOutput modelOutput ) {
744- ModelInput modelInput = storageService .getModelInput (datasetId );
743+ var modelInput = storageService .getModelInput (datasetId );
745744 if (modelInput == null ) {
746745 throw new ItemNotFoundException (datasetId , "Model input not found for id %s" .formatted (datasetId ));
747746 }
748- ModelInput solvedModelInput = modelConvertor .applyOutputToInput (modelInput , modelOutput );
747+ var solvedModelInput = modelConvertor .applyOutputToInput (modelInput , modelOutput );
749748 storageService .storeSolvedModelInput (datasetId , solvedModelInput );
750749 }
751750
752751 public void notifyOnFailure (Object id , Throwable throwable ) {
753752 LOGGER .debug ("Notify run failure for id {}" , id , throwable );
754- String problemId = (String ) id ;
753+ var problemId = (String ) id ;
755754 Metadata metadata = null ;
756755 try {
757756 // remove it as the first thing so in case any best solution events will arrive while this method is executed they will be discarded
758- SolverJob < SolverModel > solverJob = solverJobs .remove (id );
757+ var solverJob = solverJobs .remove (id );
759758
760759 // update run status only as failed
761760 metadata = storageService .getMetadata (problemId );
@@ -768,7 +767,7 @@ public void notifyOnFailure(Object id, Throwable throwable) {
768767 }
769768 } finally {
770769
771- for (ModelPostProcessor processor : modelPostProcessors ) {
770+ for (var processor : modelPostProcessors ) {
772771 try {
773772 processor .processFailed (problemId , throwable );
774773 } catch (Throwable e ) {
0 commit comments