From e610210317a4d21ae0187111d663ccc983b4354d Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 4 Jan 2024 22:51:42 +0100 Subject: Revert "Jonmv/refactor validation" --- config-model-api/abi-spec.json | 2 -- .../application/api/ValidationOverrides.java | 32 +++++----------------- .../application/api/ValidationOverrideTest.java | 4 +-- 3 files changed, 9 insertions(+), 29 deletions(-) (limited to 'config-model-api') 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 (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> messagesByValidationId, Instant now) { - invalidException(messagesByValidationId, now).ifPresent(e -> { throw e; }); + Map> 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 invalidException(Map> messagesByValidationId, Instant now) { - Map> 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.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 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"); } -- cgit v1.2.3