aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-01-04 22:51:42 +0100
committerGitHub <noreply@github.com>2024-01-04 22:51:42 +0100
commite610210317a4d21ae0187111d663ccc983b4354d (patch)
tree5ac11755dbe8998c2b3f4dc5cae8859b0a2e1b9f /config-model-api
parentb19ccf2585d6625778c4508ddcc614d41e71caaa (diff)
Revert "Jonmv/refactor validation"
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json2
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java32
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java4
3 files changed, 9 insertions, 29 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 79283641074..e1081ebec99 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -786,10 +786,8 @@
"public void <init>(java.util.List)",
"public void invalid(java.util.Map, java.time.Instant)",
"public void invalid(com.yahoo.config.application.api.ValidationId, java.lang.String, java.time.Instant)",
- "public java.util.Optional invalidException(java.util.Map, java.time.Instant)",
"public boolean allows(java.lang.String, java.time.Instant)",
"public boolean allows(com.yahoo.config.application.api.ValidationId, java.time.Instant)",
- "public void validate(java.time.Instant, java.util.function.Consumer)",
"public boolean validate(java.time.Instant)",
"public java.lang.String xmlForm()",
"public static java.lang.String toAllowMessage(com.yahoo.config.application.api.ValidationId)",
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java
index ab722dfb919..7b52d825473 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java
@@ -19,7 +19,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
@@ -50,7 +49,10 @@ public class ValidationOverrides {
/** Throws a ValidationException unless all given validation is overridden at this time */
public void invalid(Map<ValidationId, ? extends Collection<String>> messagesByValidationId, Instant now) {
- invalidException(messagesByValidationId, now).ifPresent(e -> { throw e; });
+ Map<ValidationId, Collection<String>> disallowed = new HashMap<>(messagesByValidationId);
+ disallowed.keySet().removeIf(id -> allows(id, now));
+ if ( ! disallowed.isEmpty())
+ throw new ValidationException(disallowed);
}
/** Throws a ValidationException unless this validation is overridden at this time */
@@ -59,21 +61,6 @@ public class ValidationOverrides {
throw new ValidationException(validationId, message);
}
- public Optional<ValidationException> invalidException(Map<ValidationId, ? extends Collection<String>> messagesByValidationId, Instant now) {
- Map<ValidationId, Collection<String>> disallowed = new HashMap<>(messagesByValidationId);
- disallowed.keySet().removeIf(id -> allows(id, now));
-
- if (disallowed.size() == 1 && disallowed.values().iterator().next().size() == 1) // Single-message form if possible.
- return Optional.of(new ValidationException(disallowed.keySet().iterator().next(),
- disallowed.values().iterator().next().iterator().next()));
-
- if ( ! disallowed.isEmpty())
- return Optional.of(new ValidationException(disallowed));
-
- return Optional.empty();
- }
-
- // TODO: remove after 8.284 is gone
public boolean allows(String validationIdString, Instant now) {
Optional<ValidationId> validationId = ValidationId.from(validationIdString);
if (validationId.isEmpty()) return false; // unknown id -> not allowed
@@ -90,17 +77,12 @@ public class ValidationOverrides {
}
/** Validates overrides (checks 'until' date') */
- public void validate(Instant now, Consumer<String> reporter) {
+ public boolean validate(Instant now) {
for (Allow override : overrides) {
if (now.plus(Duration.ofDays(30)).isBefore(override.until))
- reporter.accept("validation-overrides is invalid: " + override +
- " is too far in the future: Max 30 days is allowed");
+ throw new IllegalArgumentException("validation-overrides is invalid: " + override +
+ " is too far in the future: Max 30 days is allowed");
}
- }
-
- /** Validates overrides (checks 'until' date') */
- public boolean validate(Instant now) {
- validate(now, message -> { throw new IllegalArgumentException(message); });
return false;
}
diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java
index 417d7b2ff36..b1b7928c67a 100644
--- a/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java
+++ b/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java
@@ -60,7 +60,7 @@ public class ValidationOverrideTest {
try {
ValidationOverrides overrides = ValidationOverrides.fromXml(new StringReader(validationOverrides));
Instant now = ManualClock.at("2000-01-01T23:59:00");
- overrides.allows(ValidationId.indexingChange, now);
+ overrides.allows("indexing-change", now);
overrides.validate(now);
Assert.fail("Expected validation interval override validation validation failure");
}
@@ -80,7 +80,7 @@ public class ValidationOverrideTest {
try {
ValidationOverrides overrides = ValidationOverrides.fromXml(new StringReader(validationOverrides));
Instant now = ManualClock.at("2000-01-01T23:59:00");
- overrides.allows(ValidationId.indexingChange, now);
+ overrides.allows("indexing-change", now);
overrides.validate(now);
Assert.fail("Expected validation interval override validation validation failure");
}