Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ Additionally, more fields might be added for specific model implementations:

[NOTE]
====
This envelope is represented in Java/Kotlin by the `ModelResponse` record (`ai.timefold.solver.service.definition.api.domain.ModelResponse`).
This envelope is represented in Java/Kotlin by the `ModelResponse` record (`ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse`).
Its accessor is named `outputMetrics()`, not `kpis()`; only the JSON serialization uses the `kpis` key (via `@JsonProperty("kpis")`).
The score itself is not a top-level field: it's nested inside `metadata.score`, not `metadata.run.score` or a top-level `score`.
====
Expand Down
4 changes: 4 additions & 0 deletions service/definition/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<configuration>
<!-- Temporary override to skip the package changes introduced in 2.9.0. -->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
Expand Down
30 changes: 30 additions & 0 deletions service/definition/src/build/revapi-differences.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,36 @@
"new": "class ai.timefold.solver.service.definition.api.domain.RunConfiguration",
"annotationType": "org.eclipse.microprofile.openapi.annotations.media.Schema",
"justification": "RunConfiguration now carries a free-form options map, so the class-level @Schema(additionalProperties = Schema.False.class) was intentionally removed to allow arbitrary option keys."
},
{
"ignore": true,
"code": "java.class.removed",
"old": "class ai.timefold.solver.service.definition.api.data.AbstractBasicDemoDataGenerator<ModelInput_ extends ai.timefold.solver.service.definition.api.ModelInput, ModelConfigOverrides_ extends ai.timefold.solver.service.definition.api.ModelConfigOverrides>",
"justification": "Not yet ready as a public API"
},
{
"ignore": true,
"code": "java.class.removed",
"old": "class ai.timefold.solver.service.definition.api.data.DemoData",
"justification": "Not yet ready as a public API"
},
{
"ignore": true,
"code": "java.class.removed",
"old": "class ai.timefold.solver.service.definition.api.data.DemoDataConfigEntry",
"justification": "Not yet ready as a public API"
},
{
"ignore": true,
"code": "java.class.removed",
"old": "interface ai.timefold.solver.service.definition.api.data.DemoDataGenerator",
"justification": "Not yet ready as a public API"
},
{
"ignore": true,
"code": "java.class.removed",
"old": "class ai.timefold.solver.service.definition.api.data.DemoMetaData",
"justification": "Not yet ready as a public API"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
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.service.definition.api.dto.dataset.ModelInput;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput;
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;
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.conversion;

import java.util.Optional;

import ai.timefold.solver.core.api.score.Score;
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;
import ai.timefold.solver.service.definition.api.SolverModel;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelOutput;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelRequest;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelResponse;

import org.jspecify.annotations.NullMarked;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.conversion;

/**
* Root interface for all {@link ModelConvertor} implementations.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.description;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.description;

import com.fasterxml.jackson.annotation.JsonAlias;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
package ai.timefold.solver.service.definition.api.domain;

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;
package ai.timefold.solver.service.definition.api.dto.dataset;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.configuration;
package ai.timefold.solver.service.definition.api.dto.dataset;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.dataset;

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
Expand All @@ -8,10 +8,9 @@
import java.util.Set;
import java.util.UUID;

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.dto.validation.LegacyValidationResult;
import ai.timefold.solver.service.definition.api.validation.ModelValidator;
import ai.timefold.solver.service.definition.internal.dataset.Status;

import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
package ai.timefold.solver.service.definition.api.domain;

import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
package ai.timefold.solver.service.definition.api.dto.dataset;

import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ai.timefold.solver.service.definition.api.dto.dataset;

public interface ModelConfigOverrides {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ai.timefold.solver.service.definition.api.dto.dataset;

public interface ModelInput {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ai.timefold.solver.service.definition.api.dto.dataset;

public interface ModelOutput {

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
package ai.timefold.solver.service.definition.api.domain;

import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
import ai.timefold.solver.service.definition.api.ModelInput;
package ai.timefold.solver.service.definition.api.dto.dataset;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.dataset;

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;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.configuration;
package ai.timefold.solver.service.definition.api.dto.dataset;

import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.dataset;

import java.util.Map;
import java.util.Set;

import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.Size;

import ai.timefold.solver.service.definition.api.termination.SolverTerminationConfig;
import ai.timefold.solver.service.definition.api.dto.solve.SolverTerminationConfig;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.dto.dataset;

/**
* Represents the dateset lifecycle.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.error;
package ai.timefold.solver.service.definition.api.dto.error;

import java.util.UUID;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.error;
package ai.timefold.solver.service.definition.api.dto.error;

import java.util.List;
import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.log;
package ai.timefold.solver.service.definition.api.dto.log;

import com.fasterxml.jackson.annotation.JsonIncludeProperties;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.dto.patch;

import java.util.Collection;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.dto.patch;

public enum ModelInputPatchOp {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.patch;

import java.util.List;

import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
import ai.timefold.solver.service.definition.api.ModelInputPatch;
import ai.timefold.solver.service.definition.api.dto.dataset.Configuration;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api;
package ai.timefold.solver.service.definition.api.dto.scoreanalysis;

import ai.timefold.solver.core.api.score.stream.ConstraintJustification;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.scoreanalysis;

import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfig;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ai.timefold.solver.service.definition.api.domain;
package ai.timefold.solver.service.definition.api.dto.scoreanalysis;

import ai.timefold.solver.service.definition.api.ModelConfigOverrides;
import ai.timefold.solver.service.definition.api.ModelInput;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelConfigOverrides;
import ai.timefold.solver.service.definition.api.dto.dataset.ModelInput;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.termination;
package ai.timefold.solver.service.definition.api.dto.solve;

import java.time.Duration;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.validation;
package ai.timefold.solver.service.definition.api.dto.validation;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package ai.timefold.solver.service.definition.api.validation.dto;
package ai.timefold.solver.service.definition.api.dto.validation;

import java.util.Collection;

import ai.timefold.solver.service.definition.api.validation.IssueType;
import ai.timefold.solver.service.definition.api.dto.validation.issue.IssueType;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package ai.timefold.solver.service.definition.api.validation.dto;
package ai.timefold.solver.service.definition.api.dto.validation;

import java.util.Collection;

import ai.timefold.solver.service.definition.api.validation.Issue;
import ai.timefold.solver.service.definition.api.validation.ValidationStatus;
import ai.timefold.solver.service.definition.api.dto.validation.issue.Issue;

import org.eclipse.microprofile.openapi.annotations.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ai.timefold.solver.service.definition.api.validation;
package ai.timefold.solver.service.definition.api.dto.validation;

public enum ValidationStatus {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package ai.timefold.solver.service.definition.api.validation;
package ai.timefold.solver.service.definition.api.dto.validation.issue;

import java.util.Collections;
import java.util.List;

import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata;
import ai.timefold.solver.service.definition.impl.validation.ValidationIssueTypeCatalog;

import org.eclipse.microprofile.openapi.annotations.media.Schema;
Expand Down
Comment thread
rsynek marked this conversation as resolved.
Resolved
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package ai.timefold.solver.service.definition.api.validation;
package ai.timefold.solver.service.definition.api.dto.validation.issue;

import java.util.List;

import ai.timefold.solver.service.definition.api.dto.validation.issue.metadata.IssueMetadata;

import org.jspecify.annotations.NonNull;

/**
Expand Down
Loading
Loading