From 30a79f3d06fd8f88027d024f4333d405354c2cf5 Mon Sep 17 00:00:00 2001 From: John Chadwick Date: Thu, 9 Jan 2025 11:25:14 -0500 Subject: [PATCH 1/3] Minimize and refactor API surface --- .../buf/protovalidate/conformance/Main.java | 4 ++-- .../buf/protovalidate/ValidatorTest.java | 2 -- .../evaluator => }/AnyEvaluator.java | 5 +---- .../expression => }/AstExpression.java | 5 ++--- .../{internal/evaluator => }/CelPrograms.java | 7 +------ .../CompilationException.java | 2 +- .../expression => }/CompiledProgram.java | 7 ++----- .../constraints => }/ConstraintCache.java | 13 ++----------- .../evaluator => }/ConstraintResolver.java | 3 +-- .../errors => }/ConstraintViolation.java | 6 ++---- .../ConstraintViolationHelper.java | 3 +-- .../celext => }/CustomDeclarations.java | 2 +- .../{internal/celext => }/CustomOverload.java | 2 +- .../constraints => }/DescriptorMappings.java | 4 ++-- .../EmbeddedMessageEvaluator.java | 5 +---- .../evaluator => }/EnumEvaluator.java | 6 +----- .../{internal/evaluator => }/Evaluator.java | 6 ++---- .../evaluator => }/EvaluatorBuilder.java | 15 +++------------ .../{exceptions => }/ExecutionException.java | 2 +- .../{internal/expression => }/Expression.java | 4 ++-- .../evaluator => }/FieldEvaluator.java | 5 +---- .../{internal/errors => }/FieldPathUtils.java | 4 ++-- .../{internal/celext => }/Format.java | 2 +- .../evaluator => }/ListEvaluator.java | 5 +---- .../evaluator => }/MapEvaluator.java | 5 +---- .../evaluator => }/MessageEvaluator.java | 4 +--- .../evaluator => }/MessageValue.java | 9 +++------ .../expression => }/NowVariable.java | 4 ++-- .../{internal/evaluator => }/ObjectValue.java | 19 +++++++------------ .../evaluator => }/OneofEvaluator.java | 6 ++---- .../UnknownDescriptorEvaluator.java | 4 +--- .../celext => }/ValidateLibrary.java | 5 ++--- .../{exceptions => }/ValidationException.java | 2 +- .../build/buf/protovalidate/Validator.java | 9 +-------- .../{internal/evaluator => }/Value.java | 4 ++-- .../evaluator => }/ValueEvaluator.java | 4 +--- .../{internal/expression => }/Variable.java | 4 ++-- .../celext => }/CustomOverloadTest.java | 2 +- .../{internal/celext => }/FormatTest.java | 3 +-- .../ValidatorDifferentJavaPackagesTest.java | 2 -- .../ValidatorDynamicMessageTest.java | 1 - 41 files changed, 62 insertions(+), 144 deletions(-) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/AnyEvaluator.java (95%) rename src/main/java/build/buf/protovalidate/{internal/expression => }/AstExpression.java (93%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/CelPrograms.java (84%) rename src/main/java/build/buf/protovalidate/{exceptions => }/CompilationException.java (96%) rename src/main/java/build/buf/protovalidate/{internal/expression => }/CompiledProgram.java (93%) rename src/main/java/build/buf/protovalidate/{internal/constraints => }/ConstraintCache.java (95%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/ConstraintResolver.java (98%) rename src/main/java/build/buf/protovalidate/{internal/errors => }/ConstraintViolation.java (97%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/ConstraintViolationHelper.java (94%) rename src/main/java/build/buf/protovalidate/{internal/celext => }/CustomDeclarations.java (99%) rename src/main/java/build/buf/protovalidate/{internal/celext => }/CustomOverload.java (99%) rename src/main/java/build/buf/protovalidate/{internal/constraints => }/DescriptorMappings.java (99%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/EmbeddedMessageEvaluator.java (85%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/EnumEvaluator.java (92%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/Evaluator.java (88%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/EvaluatorBuilder.java (96%) rename src/main/java/build/buf/protovalidate/{exceptions => }/ExecutionException.java (95%) rename src/main/java/build/buf/protovalidate/{internal/expression => }/Expression.java (96%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/FieldEvaluator.java (94%) rename src/main/java/build/buf/protovalidate/{internal/errors => }/FieldPathUtils.java (97%) rename src/main/java/build/buf/protovalidate/{internal/celext => }/Format.java (99%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/ListEvaluator.java (92%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/MapEvaluator.java (96%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/MessageEvaluator.java (91%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/MessageValue.java (86%) rename src/main/java/build/buf/protovalidate/{internal/expression => }/NowVariable.java (94%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/ObjectValue.java (84%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/OneofEvaluator.java (90%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/UnknownDescriptorEvaluator.java (89%) rename src/main/java/build/buf/protovalidate/{internal/celext => }/ValidateLibrary.java (91%) rename src/main/java/build/buf/protovalidate/{exceptions => }/ValidationException.java (96%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/Value.java (96%) rename src/main/java/build/buf/protovalidate/{internal/evaluator => }/ValueEvaluator.java (94%) rename src/main/java/build/buf/protovalidate/{internal/expression => }/Variable.java (96%) rename src/test/java/build/buf/protovalidate/{internal/celext => }/CustomOverloadTest.java (99%) rename src/test/java/build/buf/protovalidate/{internal/celext => }/FormatTest.java (92%) diff --git a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java index a59e0de9..3f6e470a 100644 --- a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java +++ b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java @@ -14,11 +14,11 @@ package build.buf.protovalidate.conformance; +import build.buf.protovalidate.CompilationException; import build.buf.protovalidate.Config; +import build.buf.protovalidate.ExecutionException; import build.buf.protovalidate.ValidationResult; import build.buf.protovalidate.Validator; -import build.buf.protovalidate.exceptions.CompilationException; -import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.ValidateProto; import build.buf.validate.Violations; import build.buf.validate.conformance.harness.TestConformanceRequest; diff --git a/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java b/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java index acc9e7da..9c60daf3 100644 --- a/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java +++ b/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java @@ -17,8 +17,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.exceptions.ValidationException; import build.buf.validate.conformance.cases.AnEnum; import build.buf.validate.conformance.cases.BoolConstTrue; import build.buf.validate.conformance.cases.BytesContains; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/AnyEvaluator.java b/src/main/java/build/buf/protovalidate/AnyEvaluator.java similarity index 95% rename from src/main/java/build/buf/protovalidate/internal/evaluator/AnyEvaluator.java rename to src/main/java/build/buf/protovalidate/AnyEvaluator.java index 0a881c69..c9e50bce 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/AnyEvaluator.java +++ b/src/main/java/build/buf/protovalidate/AnyEvaluator.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.AnyRules; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; diff --git a/src/main/java/build/buf/protovalidate/internal/expression/AstExpression.java b/src/main/java/build/buf/protovalidate/AstExpression.java similarity index 93% rename from src/main/java/build/buf/protovalidate/internal/expression/AstExpression.java rename to src/main/java/build/buf/protovalidate/AstExpression.java index fba764b6..d8a061a4 100644 --- a/src/main/java/build/buf/protovalidate/internal/expression/AstExpression.java +++ b/src/main/java/build/buf/protovalidate/AstExpression.java @@ -12,15 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.expression; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.CompilationException; import com.google.api.expr.v1alpha1.Type; import org.projectnessie.cel.Ast; import org.projectnessie.cel.Env; /** {@link AstExpression} is a compiled CEL {@link Ast}. */ -public class AstExpression { +class AstExpression { /** The compiled CEL AST. */ public final Ast ast; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/CelPrograms.java b/src/main/java/build/buf/protovalidate/CelPrograms.java similarity index 84% rename from src/main/java/build/buf/protovalidate/internal/evaluator/CelPrograms.java rename to src/main/java/build/buf/protovalidate/CelPrograms.java index 4927b8af..632f0839 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/CelPrograms.java +++ b/src/main/java/build/buf/protovalidate/CelPrograms.java @@ -12,13 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; -import build.buf.protovalidate.internal.expression.CompiledProgram; -import build.buf.protovalidate.internal.expression.Variable; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; diff --git a/src/main/java/build/buf/protovalidate/exceptions/CompilationException.java b/src/main/java/build/buf/protovalidate/CompilationException.java similarity index 96% rename from src/main/java/build/buf/protovalidate/exceptions/CompilationException.java rename to src/main/java/build/buf/protovalidate/CompilationException.java index 863b1889..e766f5bc 100644 --- a/src/main/java/build/buf/protovalidate/exceptions/CompilationException.java +++ b/src/main/java/build/buf/protovalidate/CompilationException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.exceptions; +package build.buf.protovalidate; /** CompilationException is returned when a constraint fails to compile. This is a fatal error. */ public class CompilationException extends ValidationException { diff --git a/src/main/java/build/buf/protovalidate/internal/expression/CompiledProgram.java b/src/main/java/build/buf/protovalidate/CompiledProgram.java similarity index 93% rename from src/main/java/build/buf/protovalidate/internal/expression/CompiledProgram.java rename to src/main/java/build/buf/protovalidate/CompiledProgram.java index afb594e6..1877bd38 100644 --- a/src/main/java/build/buf/protovalidate/internal/expression/CompiledProgram.java +++ b/src/main/java/build/buf/protovalidate/CompiledProgram.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.expression; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.evaluator.Value; import build.buf.validate.FieldPath; import javax.annotation.Nullable; import org.projectnessie.cel.Program; @@ -27,7 +24,7 @@ * {@link CompiledProgram} is a parsed and type-checked {@link Program} along with the source {@link * Expression}. */ -public class CompiledProgram { +class CompiledProgram { /** A compiled CEL program that can be evaluated against a set of variable bindings. */ private final Program program; diff --git a/src/main/java/build/buf/protovalidate/internal/constraints/ConstraintCache.java b/src/main/java/build/buf/protovalidate/ConstraintCache.java similarity index 95% rename from src/main/java/build/buf/protovalidate/internal/constraints/ConstraintCache.java rename to src/main/java/build/buf/protovalidate/ConstraintCache.java index 2a4a8435..c2ed9280 100644 --- a/src/main/java/build/buf/protovalidate/internal/constraints/ConstraintCache.java +++ b/src/main/java/build/buf/protovalidate/ConstraintCache.java @@ -12,17 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.constraints; +package build.buf.protovalidate; -import build.buf.protovalidate.Config; -import build.buf.protovalidate.exceptions.CompilationException; -import build.buf.protovalidate.internal.errors.FieldPathUtils; -import build.buf.protovalidate.internal.evaluator.ObjectValue; -import build.buf.protovalidate.internal.evaluator.Value; -import build.buf.protovalidate.internal.expression.AstExpression; -import build.buf.protovalidate.internal.expression.CompiledProgram; -import build.buf.protovalidate.internal.expression.Expression; -import build.buf.protovalidate.internal.expression.Variable; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.ValidateProto; @@ -52,7 +43,7 @@ import org.projectnessie.cel.interpreter.Activation; /** A build-through cache for computed standard constraints. */ -public class ConstraintCache { +class ConstraintCache { private static class CelRule { public final AstExpression astExpression; public final FieldDescriptor field; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintResolver.java b/src/main/java/build/buf/protovalidate/ConstraintResolver.java similarity index 98% rename from src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintResolver.java rename to src/main/java/build/buf/protovalidate/ConstraintResolver.java index b94cfb8e..27bd7051 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintResolver.java +++ b/src/main/java/build/buf/protovalidate/ConstraintResolver.java @@ -12,9 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.CompilationException; import build.buf.validate.FieldConstraints; import build.buf.validate.MessageConstraints; import build.buf.validate.OneofConstraints; diff --git a/src/main/java/build/buf/protovalidate/internal/errors/ConstraintViolation.java b/src/main/java/build/buf/protovalidate/ConstraintViolation.java similarity index 97% rename from src/main/java/build/buf/protovalidate/internal/errors/ConstraintViolation.java rename to src/main/java/build/buf/protovalidate/ConstraintViolation.java index 711b012b..3687d28a 100644 --- a/src/main/java/build/buf/protovalidate/internal/errors/ConstraintViolation.java +++ b/src/main/java/build/buf/protovalidate/ConstraintViolation.java @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.errors; +package build.buf.protovalidate; -import build.buf.protovalidate.Violation; -import build.buf.protovalidate.internal.evaluator.Value; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; import com.google.protobuf.Descriptors; @@ -31,7 +29,7 @@ * {@link ConstraintViolation} contains all of the collected information about an individual * constraint violation. */ -public class ConstraintViolation implements Violation { +class ConstraintViolation implements Violation { /** Static value to return when there are no violations. */ public static final List NO_VIOLATIONS = new ArrayList<>(); diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintViolationHelper.java b/src/main/java/build/buf/protovalidate/ConstraintViolationHelper.java similarity index 94% rename from src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintViolationHelper.java rename to src/main/java/build/buf/protovalidate/ConstraintViolationHelper.java index 7abcee01..2a9b4943 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintViolationHelper.java +++ b/src/main/java/build/buf/protovalidate/ConstraintViolationHelper.java @@ -12,9 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; import java.util.ArrayList; diff --git a/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java b/src/main/java/build/buf/protovalidate/CustomDeclarations.java similarity index 99% rename from src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java rename to src/main/java/build/buf/protovalidate/CustomDeclarations.java index 0ab6a3b2..5c7310fc 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/CustomDeclarations.java +++ b/src/main/java/build/buf/protovalidate/CustomDeclarations.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; import com.google.api.expr.v1alpha1.Decl; import java.util.ArrayList; diff --git a/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java b/src/main/java/build/buf/protovalidate/CustomOverload.java similarity index 99% rename from src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java rename to src/main/java/build/buf/protovalidate/CustomOverload.java index 34b980c1..f69d59ee 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/CustomOverload.java +++ b/src/main/java/build/buf/protovalidate/CustomOverload.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; import com.google.common.base.Ascii; import com.google.common.base.Splitter; diff --git a/src/main/java/build/buf/protovalidate/internal/constraints/DescriptorMappings.java b/src/main/java/build/buf/protovalidate/DescriptorMappings.java similarity index 99% rename from src/main/java/build/buf/protovalidate/internal/constraints/DescriptorMappings.java rename to src/main/java/build/buf/protovalidate/DescriptorMappings.java index c444d2ee..d6f33497 100644 --- a/src/main/java/build/buf/protovalidate/internal/constraints/DescriptorMappings.java +++ b/src/main/java/build/buf/protovalidate/DescriptorMappings.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.constraints; +package build.buf.protovalidate; import build.buf.validate.FieldConstraints; import com.google.api.expr.v1alpha1.Type; @@ -27,7 +27,7 @@ /** * DescriptorMappings provides mappings between protocol buffer descriptors and CEL declarations. */ -public final class DescriptorMappings { +final class DescriptorMappings { /** Provides a {@link Descriptor} for {@link FieldConstraints}. */ static final Descriptor FIELD_CONSTRAINTS_DESC = FieldConstraints.getDescriptor(); diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/EmbeddedMessageEvaluator.java b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java similarity index 85% rename from src/main/java/build/buf/protovalidate/internal/evaluator/EmbeddedMessageEvaluator.java rename to src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java index 0911ed20..5eec58a9 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/EmbeddedMessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import java.util.Collections; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/EnumEvaluator.java b/src/main/java/build/buf/protovalidate/EnumEvaluator.java similarity index 92% rename from src/main/java/build/buf/protovalidate/internal/evaluator/EnumEvaluator.java rename to src/main/java/build/buf/protovalidate/EnumEvaluator.java index 3ab433f4..0bd173f4 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/EnumEvaluator.java +++ b/src/main/java/build/buf/protovalidate/EnumEvaluator.java @@ -12,12 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.ValidationResult; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.EnumRules; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/Evaluator.java b/src/main/java/build/buf/protovalidate/Evaluator.java similarity index 88% rename from src/main/java/build/buf/protovalidate/internal/evaluator/Evaluator.java rename to src/main/java/build/buf/protovalidate/Evaluator.java index 6c1e4802..b86371f1 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/Evaluator.java +++ b/src/main/java/build/buf/protovalidate/Evaluator.java @@ -12,17 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; import java.util.List; /** * {@link Evaluator} defines a validation evaluator. evaluator implementations may elide type * checking of the passed in value, as the types have been guaranteed during the build phase. */ -public interface Evaluator { +interface Evaluator { /** * Tautology returns true if the evaluator always succeeds. * diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/EvaluatorBuilder.java b/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java similarity index 96% rename from src/main/java/build/buf/protovalidate/internal/evaluator/EvaluatorBuilder.java rename to src/main/java/build/buf/protovalidate/EvaluatorBuilder.java index f421255c..fbd7f747 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/EvaluatorBuilder.java +++ b/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java @@ -12,17 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; - -import build.buf.protovalidate.Config; -import build.buf.protovalidate.exceptions.CompilationException; -import build.buf.protovalidate.internal.constraints.ConstraintCache; -import build.buf.protovalidate.internal.constraints.DescriptorMappings; -import build.buf.protovalidate.internal.errors.FieldPathUtils; -import build.buf.protovalidate.internal.expression.AstExpression; -import build.buf.protovalidate.internal.expression.CompiledProgram; -import build.buf.protovalidate.internal.expression.Expression; -import build.buf.protovalidate.internal.expression.Variable; +package build.buf.protovalidate; + import build.buf.validate.Constraint; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; @@ -50,7 +41,7 @@ import org.projectnessie.cel.checker.Decls; /** A build-through cache of message evaluators keyed off the provided descriptor. */ -public class EvaluatorBuilder { +class EvaluatorBuilder { private static final FieldPathElement CEL_FIELD_PATH_ELEMENT = FieldPathUtils.fieldPathElement( FieldConstraints.getDescriptor().findFieldByNumber(FieldConstraints.CEL_FIELD_NUMBER)); diff --git a/src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java b/src/main/java/build/buf/protovalidate/ExecutionException.java similarity index 95% rename from src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java rename to src/main/java/build/buf/protovalidate/ExecutionException.java index 6342029a..a0d16801 100644 --- a/src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java +++ b/src/main/java/build/buf/protovalidate/ExecutionException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.exceptions; +package build.buf.protovalidate; /** ExecutionException is returned when a constraint fails to execute. This is a fatal error. */ public class ExecutionException extends ValidationException { diff --git a/src/main/java/build/buf/protovalidate/internal/expression/Expression.java b/src/main/java/build/buf/protovalidate/Expression.java similarity index 96% rename from src/main/java/build/buf/protovalidate/internal/expression/Expression.java rename to src/main/java/build/buf/protovalidate/Expression.java index e4af662e..9c4c0820 100644 --- a/src/main/java/build/buf/protovalidate/internal/expression/Expression.java +++ b/src/main/java/build/buf/protovalidate/Expression.java @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.expression; +package build.buf.protovalidate; import build.buf.validate.Constraint; import java.util.ArrayList; import java.util.List; /** Expression represents a single CEL expression. */ -public class Expression { +class Expression { /** The id of the constraint. */ public final String id; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/FieldEvaluator.java b/src/main/java/build/buf/protovalidate/FieldEvaluator.java similarity index 94% rename from src/main/java/build/buf/protovalidate/internal/evaluator/FieldEvaluator.java rename to src/main/java/build/buf/protovalidate/FieldEvaluator.java index 07f3d69c..c5f7bb52 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/FieldEvaluator.java +++ b/src/main/java/build/buf/protovalidate/FieldEvaluator.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import com.google.protobuf.Descriptors.FieldDescriptor; diff --git a/src/main/java/build/buf/protovalidate/internal/errors/FieldPathUtils.java b/src/main/java/build/buf/protovalidate/FieldPathUtils.java similarity index 97% rename from src/main/java/build/buf/protovalidate/internal/errors/FieldPathUtils.java rename to src/main/java/build/buf/protovalidate/FieldPathUtils.java index 4b1103ae..aca207be 100644 --- a/src/main/java/build/buf/protovalidate/internal/errors/FieldPathUtils.java +++ b/src/main/java/build/buf/protovalidate/FieldPathUtils.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.errors; +package build.buf.protovalidate; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; @@ -21,7 +21,7 @@ import javax.annotation.Nullable; /** Utility class for manipulating error paths in violations. */ -public final class FieldPathUtils { +final class FieldPathUtils { private FieldPathUtils() {} /** diff --git a/src/main/java/build/buf/protovalidate/internal/celext/Format.java b/src/main/java/build/buf/protovalidate/Format.java similarity index 99% rename from src/main/java/build/buf/protovalidate/internal/celext/Format.java rename to src/main/java/build/buf/protovalidate/Format.java index 82ea82a0..80faeb0c 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/Format.java +++ b/src/main/java/build/buf/protovalidate/Format.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; import static java.time.format.DateTimeFormatter.ISO_INSTANT; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/ListEvaluator.java b/src/main/java/build/buf/protovalidate/ListEvaluator.java similarity index 92% rename from src/main/java/build/buf/protovalidate/internal/evaluator/ListEvaluator.java rename to src/main/java/build/buf/protovalidate/ListEvaluator.java index ab240f8e..ba3f2557 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/ListEvaluator.java +++ b/src/main/java/build/buf/protovalidate/ListEvaluator.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/MapEvaluator.java b/src/main/java/build/buf/protovalidate/MapEvaluator.java similarity index 96% rename from src/main/java/build/buf/protovalidate/internal/evaluator/MapEvaluator.java rename to src/main/java/build/buf/protovalidate/MapEvaluator.java index 501b316a..40494341 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/MapEvaluator.java +++ b/src/main/java/build/buf/protovalidate/MapEvaluator.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/MessageEvaluator.java b/src/main/java/build/buf/protovalidate/MessageEvaluator.java similarity index 91% rename from src/main/java/build/buf/protovalidate/internal/evaluator/MessageEvaluator.java rename to src/main/java/build/buf/protovalidate/MessageEvaluator.java index 54a6075f..f4327c7b 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/MessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/MessageEvaluator.java @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/MessageValue.java b/src/main/java/build/buf/protovalidate/MessageValue.java similarity index 86% rename from src/main/java/build/buf/protovalidate/internal/evaluator/MessageValue.java rename to src/main/java/build/buf/protovalidate/MessageValue.java index cd3c5bdf..9ec965d7 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/MessageValue.java +++ b/src/main/java/build/buf/protovalidate/MessageValue.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; import com.google.protobuf.Descriptors; import com.google.protobuf.Message; @@ -21,11 +21,8 @@ import java.util.Map; import javax.annotation.Nullable; -/** - * The {@link build.buf.protovalidate.internal.evaluator.Value} type that contains a {@link - * com.google.protobuf.Message}. - */ -public final class MessageValue implements Value { +/** The {@link Value} type that contains a {@link com.google.protobuf.Message}. */ +final class MessageValue implements Value { /** Object type since the object type is inferred from the field descriptor. */ private final Object value; diff --git a/src/main/java/build/buf/protovalidate/internal/expression/NowVariable.java b/src/main/java/build/buf/protovalidate/NowVariable.java similarity index 94% rename from src/main/java/build/buf/protovalidate/internal/expression/NowVariable.java rename to src/main/java/build/buf/protovalidate/NowVariable.java index 6fbf4158..ab021979 100644 --- a/src/main/java/build/buf/protovalidate/internal/expression/NowVariable.java +++ b/src/main/java/build/buf/protovalidate/NowVariable.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.expression; +package build.buf.protovalidate; import java.time.Instant; import javax.annotation.Nullable; @@ -24,7 +24,7 @@ * {@link NowVariable} implements {@link Activation}, providing a lazily produced timestamp for * accessing the variable `now` that's constant within an evaluation. */ -public class NowVariable implements Activation { +class NowVariable implements Activation { /** The name of the 'now' variable. */ private static final String NOW_NAME = "now"; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/ObjectValue.java b/src/main/java/build/buf/protovalidate/ObjectValue.java similarity index 84% rename from src/main/java/build/buf/protovalidate/internal/evaluator/ObjectValue.java rename to src/main/java/build/buf/protovalidate/ObjectValue.java index 53dddaf0..1c897220 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/ObjectValue.java +++ b/src/main/java/build/buf/protovalidate/ObjectValue.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; import com.google.protobuf.AbstractMessage; import com.google.protobuf.Descriptors; @@ -25,11 +25,8 @@ import javax.annotation.Nullable; import org.projectnessie.cel.common.ULong; -/** - * The {@link build.buf.protovalidate.internal.evaluator.Value} type that contains a field - * descriptor and its value. - */ -public final class ObjectValue implements Value { +/** The {@link Value} type that contains a field descriptor and its value. */ +final class ObjectValue implements Value { /** * {@link com.google.protobuf.Descriptors.FieldDescriptor} is the field descriptor for the value. @@ -40,7 +37,7 @@ public final class ObjectValue implements Value { private final Object value; /** - * Constructs a new {@link build.buf.protovalidate.internal.evaluator.ObjectValue}. + * Constructs a new {@link ObjectValue}. * * @param fieldDescriptor The field descriptor for the value. * @param value The value associated with the field descriptor. @@ -90,7 +87,7 @@ public List repeatedValue() { if (fieldDescriptor.isRepeated()) { List list = (List) value; for (Object o : list) { - out.add(new build.buf.protovalidate.internal.evaluator.ObjectValue(fieldDescriptor, o)); + out.add(new ObjectValue(fieldDescriptor, o)); } } return out; @@ -108,12 +105,10 @@ public Map mapValue() { Map out = new HashMap<>(input.size()); for (AbstractMessage entry : input) { Object keyValue = entry.getField(keyDesc); - Value keyJavaValue = - new build.buf.protovalidate.internal.evaluator.ObjectValue(keyDesc, keyValue); + Value keyJavaValue = new ObjectValue(keyDesc, keyValue); Object valValue = entry.getField(valDesc); - Value valJavaValue = - new build.buf.protovalidate.internal.evaluator.ObjectValue(valDesc, valValue); + Value valJavaValue = new ObjectValue(valDesc, valValue); out.put(keyJavaValue, valJavaValue); } diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/OneofEvaluator.java b/src/main/java/build/buf/protovalidate/OneofEvaluator.java similarity index 90% rename from src/main/java/build/buf/protovalidate/internal/evaluator/OneofEvaluator.java rename to src/main/java/build/buf/protovalidate/OneofEvaluator.java index a529d0b1..38a9ac86 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/OneofEvaluator.java +++ b/src/main/java/build/buf/protovalidate/OneofEvaluator.java @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; import build.buf.validate.FieldPathElement; import com.google.protobuf.Descriptors.OneofDescriptor; import com.google.protobuf.Message; @@ -23,7 +21,7 @@ import java.util.List; /** {@link OneofEvaluator} performs validation on a oneof union. */ -public class OneofEvaluator implements Evaluator { +class OneofEvaluator implements Evaluator { /** The {@link OneofDescriptor} targeted by this evaluator. */ private final OneofDescriptor descriptor; diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/UnknownDescriptorEvaluator.java b/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java similarity index 89% rename from src/main/java/build/buf/protovalidate/internal/evaluator/UnknownDescriptorEvaluator.java rename to src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java index 76552636..d75f9ddc 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/UnknownDescriptorEvaluator.java +++ b/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; import com.google.protobuf.Descriptors.Descriptor; import java.util.Collections; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/internal/celext/ValidateLibrary.java b/src/main/java/build/buf/protovalidate/ValidateLibrary.java similarity index 91% rename from src/main/java/build/buf/protovalidate/internal/celext/ValidateLibrary.java rename to src/main/java/build/buf/protovalidate/ValidateLibrary.java index d87da052..f28fe152 100644 --- a/src/main/java/build/buf/protovalidate/internal/celext/ValidateLibrary.java +++ b/src/main/java/build/buf/protovalidate/ValidateLibrary.java @@ -12,9 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; -import build.buf.protovalidate.internal.expression.NowVariable; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -27,7 +26,7 @@ * Custom {@link Library} for CEL. Provides all the custom extension function definitions and * overloads. */ -public class ValidateLibrary implements Library { +class ValidateLibrary implements Library { /** Creates a ValidateLibrary with all custom declarations and overloads. */ public ValidateLibrary() {} diff --git a/src/main/java/build/buf/protovalidate/exceptions/ValidationException.java b/src/main/java/build/buf/protovalidate/ValidationException.java similarity index 96% rename from src/main/java/build/buf/protovalidate/exceptions/ValidationException.java rename to src/main/java/build/buf/protovalidate/ValidationException.java index 88d78d57..e8b0b1e0 100644 --- a/src/main/java/build/buf/protovalidate/exceptions/ValidationException.java +++ b/src/main/java/build/buf/protovalidate/ValidationException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.exceptions; +package build.buf.protovalidate; /** ValidationException is the base exception for all validation errors. */ public class ValidationException extends Exception { diff --git a/src/main/java/build/buf/protovalidate/Validator.java b/src/main/java/build/buf/protovalidate/Validator.java index a812649b..dab260bb 100644 --- a/src/main/java/build/buf/protovalidate/Validator.java +++ b/src/main/java/build/buf/protovalidate/Validator.java @@ -14,13 +14,6 @@ package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.CompilationException; -import build.buf.protovalidate.exceptions.ValidationException; -import build.buf.protovalidate.internal.celext.ValidateLibrary; -import build.buf.protovalidate.internal.errors.ConstraintViolation; -import build.buf.protovalidate.internal.evaluator.Evaluator; -import build.buf.protovalidate.internal.evaluator.EvaluatorBuilder; -import build.buf.protovalidate.internal.evaluator.MessageValue; import com.google.protobuf.Descriptors.Descriptor; import com.google.protobuf.Message; import java.util.ArrayList; @@ -65,7 +58,7 @@ public Validator() { * message is invalid. An exception is thrown if the message cannot be validated because the * evaluation logic for the message cannot be built ({@link CompilationException}), or there is a * type error when attempting to evaluate a CEL expression associated with the message ({@link - * build.buf.protovalidate.exceptions.ExecutionException}). + * ExecutionException}). * * @param msg the {@link Message} to be validated. * @return the {@link ValidationResult} from the evaluation. diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/Value.java b/src/main/java/build/buf/protovalidate/Value.java similarity index 96% rename from src/main/java/build/buf/protovalidate/internal/evaluator/Value.java rename to src/main/java/build/buf/protovalidate/Value.java index b6a07f3e..5aa920f2 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/Value.java +++ b/src/main/java/build/buf/protovalidate/Value.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; import com.google.protobuf.Descriptors; import com.google.protobuf.Message; @@ -24,7 +24,7 @@ * {@link Value} is a wrapper around a protobuf value that provides helper methods for accessing the * value. */ -public interface Value { +interface Value { /** * Get the field descriptor that corresponds to the underlying Value, if it is a message field. * diff --git a/src/main/java/build/buf/protovalidate/internal/evaluator/ValueEvaluator.java b/src/main/java/build/buf/protovalidate/ValueEvaluator.java similarity index 94% rename from src/main/java/build/buf/protovalidate/internal/evaluator/ValueEvaluator.java rename to src/main/java/build/buf/protovalidate/ValueEvaluator.java index a84359da..8eb6c47a 100644 --- a/src/main/java/build/buf/protovalidate/internal/evaluator/ValueEvaluator.java +++ b/src/main/java/build/buf/protovalidate/ValueEvaluator.java @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.evaluator; +package build.buf.protovalidate; -import build.buf.protovalidate.exceptions.ExecutionException; -import build.buf.protovalidate.internal.errors.ConstraintViolation; import build.buf.validate.FieldPath; import com.google.protobuf.Descriptors; import java.util.ArrayList; diff --git a/src/main/java/build/buf/protovalidate/internal/expression/Variable.java b/src/main/java/build/buf/protovalidate/Variable.java similarity index 96% rename from src/main/java/build/buf/protovalidate/internal/expression/Variable.java rename to src/main/java/build/buf/protovalidate/Variable.java index b0aaebfd..e026ef6e 100644 --- a/src/main/java/build/buf/protovalidate/internal/expression/Variable.java +++ b/src/main/java/build/buf/protovalidate/Variable.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.expression; +package build.buf.protovalidate; import javax.annotation.Nullable; import org.projectnessie.cel.interpreter.Activation; @@ -22,7 +22,7 @@ * {@link Variable} implements {@link org.projectnessie.cel.interpreter.Activation}, providing a * lightweight named variable to cel.Program executions. */ -public class Variable implements Activation { +class Variable implements Activation { /** The {@value} variable in CEL. */ public static final String THIS_NAME = "this"; diff --git a/src/test/java/build/buf/protovalidate/internal/celext/CustomOverloadTest.java b/src/test/java/build/buf/protovalidate/CustomOverloadTest.java similarity index 99% rename from src/test/java/build/buf/protovalidate/internal/celext/CustomOverloadTest.java rename to src/test/java/build/buf/protovalidate/CustomOverloadTest.java index 73eb9344..24deb7ec 100644 --- a/src/test/java/build/buf/protovalidate/internal/celext/CustomOverloadTest.java +++ b/src/test/java/build/buf/protovalidate/CustomOverloadTest.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/src/test/java/build/buf/protovalidate/internal/celext/FormatTest.java b/src/test/java/build/buf/protovalidate/FormatTest.java similarity index 92% rename from src/test/java/build/buf/protovalidate/internal/celext/FormatTest.java rename to src/test/java/build/buf/protovalidate/FormatTest.java index 4c963e1e..a5656505 100644 --- a/src/test/java/build/buf/protovalidate/internal/celext/FormatTest.java +++ b/src/test/java/build/buf/protovalidate/FormatTest.java @@ -12,10 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate.internal.celext; +package build.buf.protovalidate; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import org.projectnessie.cel.common.types.ListT; diff --git a/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java b/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java index 6623f177..53047510 100644 --- a/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java +++ b/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java @@ -16,8 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import build.buf.protovalidate.exceptions.ValidationException; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; diff --git a/src/test/java/build/buf/protovalidate/ValidatorDynamicMessageTest.java b/src/test/java/build/buf/protovalidate/ValidatorDynamicMessageTest.java index 9cd6d8a1..a358b6d6 100644 --- a/src/test/java/build/buf/protovalidate/ValidatorDynamicMessageTest.java +++ b/src/test/java/build/buf/protovalidate/ValidatorDynamicMessageTest.java @@ -17,7 +17,6 @@ import static com.example.imports.validationtest.PredefinedProto.isIdent; import static org.assertj.core.api.Assertions.assertThat; -import build.buf.protovalidate.internal.errors.FieldPathUtils; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; From 77244f1513bce1e2566f9adc20ebeec5ca7f401b Mon Sep 17 00:00:00 2001 From: John Chadwick Date: Tue, 21 Jan 2025 11:55:47 -0500 Subject: [PATCH 2/3] Undo moving exceptions package --- .../main/java/build/buf/protovalidate/conformance/Main.java | 4 ++-- .../src/test/java/build/buf/protovalidate/ValidatorTest.java | 2 ++ src/main/java/build/buf/protovalidate/AnyEvaluator.java | 1 + src/main/java/build/buf/protovalidate/AstExpression.java | 1 + src/main/java/build/buf/protovalidate/CelPrograms.java | 2 ++ src/main/java/build/buf/protovalidate/CompiledProgram.java | 1 + src/main/java/build/buf/protovalidate/ConstraintCache.java | 1 + src/main/java/build/buf/protovalidate/ConstraintResolver.java | 1 + .../build/buf/protovalidate/EmbeddedMessageEvaluator.java | 2 ++ src/main/java/build/buf/protovalidate/EnumEvaluator.java | 1 + src/main/java/build/buf/protovalidate/Evaluator.java | 2 ++ src/main/java/build/buf/protovalidate/EvaluatorBuilder.java | 1 + src/main/java/build/buf/protovalidate/FieldEvaluator.java | 1 + src/main/java/build/buf/protovalidate/ListEvaluator.java | 1 + src/main/java/build/buf/protovalidate/MapEvaluator.java | 1 + src/main/java/build/buf/protovalidate/MessageEvaluator.java | 2 ++ src/main/java/build/buf/protovalidate/OneofEvaluator.java | 1 + .../build/buf/protovalidate/UnknownDescriptorEvaluator.java | 1 + src/main/java/build/buf/protovalidate/Validator.java | 3 +++ src/main/java/build/buf/protovalidate/ValueEvaluator.java | 1 + .../protovalidate/{ => exceptions}/CompilationException.java | 2 +- .../protovalidate/{ => exceptions}/ExecutionException.java | 2 +- .../protovalidate/{ => exceptions}/ValidationException.java | 2 +- .../buf/protovalidate/ValidatorDifferentJavaPackagesTest.java | 1 + 24 files changed, 32 insertions(+), 5 deletions(-) rename src/main/java/build/buf/protovalidate/{ => exceptions}/CompilationException.java (96%) rename src/main/java/build/buf/protovalidate/{ => exceptions}/ExecutionException.java (95%) rename src/main/java/build/buf/protovalidate/{ => exceptions}/ValidationException.java (96%) diff --git a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java index 3f6e470a..0b12fd87 100644 --- a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java +++ b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java @@ -14,9 +14,9 @@ package build.buf.protovalidate.conformance; -import build.buf.protovalidate.CompilationException; +import build.buf.protovalidate.exceptions.CompilationException; import build.buf.protovalidate.Config; -import build.buf.protovalidate.ExecutionException; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.protovalidate.ValidationResult; import build.buf.protovalidate.Validator; import build.buf.validate.ValidateProto; diff --git a/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java b/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java index 9c60daf3..acc9e7da 100644 --- a/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java +++ b/conformance/src/test/java/build/buf/protovalidate/ValidatorTest.java @@ -17,6 +17,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import build.buf.protovalidate.exceptions.ExecutionException; +import build.buf.protovalidate.exceptions.ValidationException; import build.buf.validate.conformance.cases.AnEnum; import build.buf.validate.conformance.cases.BoolConstTrue; import build.buf.validate.conformance.cases.BytesContains; diff --git a/src/main/java/build/buf/protovalidate/AnyEvaluator.java b/src/main/java/build/buf/protovalidate/AnyEvaluator.java index c9e50bce..a93777ff 100644 --- a/src/main/java/build/buf/protovalidate/AnyEvaluator.java +++ b/src/main/java/build/buf/protovalidate/AnyEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.AnyRules; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; diff --git a/src/main/java/build/buf/protovalidate/AstExpression.java b/src/main/java/build/buf/protovalidate/AstExpression.java index d8a061a4..24cce494 100644 --- a/src/main/java/build/buf/protovalidate/AstExpression.java +++ b/src/main/java/build/buf/protovalidate/AstExpression.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.CompilationException; import com.google.api.expr.v1alpha1.Type; import org.projectnessie.cel.Ast; import org.projectnessie.cel.Env; diff --git a/src/main/java/build/buf/protovalidate/CelPrograms.java b/src/main/java/build/buf/protovalidate/CelPrograms.java index 632f0839..beaa6e71 100644 --- a/src/main/java/build/buf/protovalidate/CelPrograms.java +++ b/src/main/java/build/buf/protovalidate/CelPrograms.java @@ -14,6 +14,8 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; + import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; diff --git a/src/main/java/build/buf/protovalidate/CompiledProgram.java b/src/main/java/build/buf/protovalidate/CompiledProgram.java index 1877bd38..fa1c68a8 100644 --- a/src/main/java/build/buf/protovalidate/CompiledProgram.java +++ b/src/main/java/build/buf/protovalidate/CompiledProgram.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldPath; import javax.annotation.Nullable; import org.projectnessie.cel.Program; diff --git a/src/main/java/build/buf/protovalidate/ConstraintCache.java b/src/main/java/build/buf/protovalidate/ConstraintCache.java index c2ed9280..708019f2 100644 --- a/src/main/java/build/buf/protovalidate/ConstraintCache.java +++ b/src/main/java/build/buf/protovalidate/ConstraintCache.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.CompilationException; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.ValidateProto; diff --git a/src/main/java/build/buf/protovalidate/ConstraintResolver.java b/src/main/java/build/buf/protovalidate/ConstraintResolver.java index 27bd7051..ffe6bf0e 100644 --- a/src/main/java/build/buf/protovalidate/ConstraintResolver.java +++ b/src/main/java/build/buf/protovalidate/ConstraintResolver.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.CompilationException; import build.buf.validate.FieldConstraints; import build.buf.validate.MessageConstraints; import build.buf.validate.OneofConstraints; diff --git a/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java index 5eec58a9..be4dcddc 100644 --- a/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java @@ -14,6 +14,8 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; + import java.util.Collections; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/EnumEvaluator.java b/src/main/java/build/buf/protovalidate/EnumEvaluator.java index 0bd173f4..ec588d82 100644 --- a/src/main/java/build/buf/protovalidate/EnumEvaluator.java +++ b/src/main/java/build/buf/protovalidate/EnumEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.EnumRules; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; diff --git a/src/main/java/build/buf/protovalidate/Evaluator.java b/src/main/java/build/buf/protovalidate/Evaluator.java index b86371f1..d36562b9 100644 --- a/src/main/java/build/buf/protovalidate/Evaluator.java +++ b/src/main/java/build/buf/protovalidate/Evaluator.java @@ -14,6 +14,8 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; + import java.util.List; /** diff --git a/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java b/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java index fbd7f747..94dc09c3 100644 --- a/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java +++ b/src/main/java/build/buf/protovalidate/EvaluatorBuilder.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.CompilationException; import build.buf.validate.Constraint; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; diff --git a/src/main/java/build/buf/protovalidate/FieldEvaluator.java b/src/main/java/build/buf/protovalidate/FieldEvaluator.java index c5f7bb52..c8069a67 100644 --- a/src/main/java/build/buf/protovalidate/FieldEvaluator.java +++ b/src/main/java/build/buf/protovalidate/FieldEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import com.google.protobuf.Descriptors.FieldDescriptor; diff --git a/src/main/java/build/buf/protovalidate/ListEvaluator.java b/src/main/java/build/buf/protovalidate/ListEvaluator.java index ba3f2557..6b77d229 100644 --- a/src/main/java/build/buf/protovalidate/ListEvaluator.java +++ b/src/main/java/build/buf/protovalidate/ListEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; diff --git a/src/main/java/build/buf/protovalidate/MapEvaluator.java b/src/main/java/build/buf/protovalidate/MapEvaluator.java index 40494341..1e92accd 100644 --- a/src/main/java/build/buf/protovalidate/MapEvaluator.java +++ b/src/main/java/build/buf/protovalidate/MapEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; diff --git a/src/main/java/build/buf/protovalidate/MessageEvaluator.java b/src/main/java/build/buf/protovalidate/MessageEvaluator.java index f4327c7b..d15c2d70 100644 --- a/src/main/java/build/buf/protovalidate/MessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/MessageEvaluator.java @@ -14,6 +14,8 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; + import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/OneofEvaluator.java b/src/main/java/build/buf/protovalidate/OneofEvaluator.java index 38a9ac86..b2f59f26 100644 --- a/src/main/java/build/buf/protovalidate/OneofEvaluator.java +++ b/src/main/java/build/buf/protovalidate/OneofEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldPathElement; import com.google.protobuf.Descriptors.OneofDescriptor; import com.google.protobuf.Message; diff --git a/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java b/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java index d75f9ddc..380d457d 100644 --- a/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java +++ b/src/main/java/build/buf/protovalidate/UnknownDescriptorEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import com.google.protobuf.Descriptors.Descriptor; import java.util.Collections; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/Validator.java b/src/main/java/build/buf/protovalidate/Validator.java index dab260bb..cb575f00 100644 --- a/src/main/java/build/buf/protovalidate/Validator.java +++ b/src/main/java/build/buf/protovalidate/Validator.java @@ -14,6 +14,9 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.CompilationException; +import build.buf.protovalidate.exceptions.ExecutionException; +import build.buf.protovalidate.exceptions.ValidationException; import com.google.protobuf.Descriptors.Descriptor; import com.google.protobuf.Message; import java.util.ArrayList; diff --git a/src/main/java/build/buf/protovalidate/ValueEvaluator.java b/src/main/java/build/buf/protovalidate/ValueEvaluator.java index 8eb6c47a..ea050b9a 100644 --- a/src/main/java/build/buf/protovalidate/ValueEvaluator.java +++ b/src/main/java/build/buf/protovalidate/ValueEvaluator.java @@ -14,6 +14,7 @@ package build.buf.protovalidate; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.FieldPath; import com.google.protobuf.Descriptors; import java.util.ArrayList; diff --git a/src/main/java/build/buf/protovalidate/CompilationException.java b/src/main/java/build/buf/protovalidate/exceptions/CompilationException.java similarity index 96% rename from src/main/java/build/buf/protovalidate/CompilationException.java rename to src/main/java/build/buf/protovalidate/exceptions/CompilationException.java index e766f5bc..863b1889 100644 --- a/src/main/java/build/buf/protovalidate/CompilationException.java +++ b/src/main/java/build/buf/protovalidate/exceptions/CompilationException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate; +package build.buf.protovalidate.exceptions; /** CompilationException is returned when a constraint fails to compile. This is a fatal error. */ public class CompilationException extends ValidationException { diff --git a/src/main/java/build/buf/protovalidate/ExecutionException.java b/src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java similarity index 95% rename from src/main/java/build/buf/protovalidate/ExecutionException.java rename to src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java index a0d16801..6342029a 100644 --- a/src/main/java/build/buf/protovalidate/ExecutionException.java +++ b/src/main/java/build/buf/protovalidate/exceptions/ExecutionException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate; +package build.buf.protovalidate.exceptions; /** ExecutionException is returned when a constraint fails to execute. This is a fatal error. */ public class ExecutionException extends ValidationException { diff --git a/src/main/java/build/buf/protovalidate/ValidationException.java b/src/main/java/build/buf/protovalidate/exceptions/ValidationException.java similarity index 96% rename from src/main/java/build/buf/protovalidate/ValidationException.java rename to src/main/java/build/buf/protovalidate/exceptions/ValidationException.java index e8b0b1e0..88d78d57 100644 --- a/src/main/java/build/buf/protovalidate/ValidationException.java +++ b/src/main/java/build/buf/protovalidate/exceptions/ValidationException.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package build.buf.protovalidate; +package build.buf.protovalidate.exceptions; /** ValidationException is the base exception for all validation errors. */ public class ValidationException extends Exception { diff --git a/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java b/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java index 53047510..e8f05110 100644 --- a/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java +++ b/src/test/java/build/buf/protovalidate/ValidatorDifferentJavaPackagesTest.java @@ -16,6 +16,7 @@ import static org.assertj.core.api.Assertions.assertThat; +import build.buf.protovalidate.exceptions.ValidationException; import build.buf.validate.FieldConstraints; import build.buf.validate.FieldPath; import build.buf.validate.FieldPathElement; From ba9097c3c7c1964d6bcf80eef96a41cf9b199265 Mon Sep 17 00:00:00 2001 From: John Chadwick Date: Tue, 21 Jan 2025 12:13:08 -0500 Subject: [PATCH 3/3] spotlessApply --- .../main/java/build/buf/protovalidate/conformance/Main.java | 4 ++-- src/main/java/build/buf/protovalidate/CelPrograms.java | 1 - .../build/buf/protovalidate/EmbeddedMessageEvaluator.java | 1 - src/main/java/build/buf/protovalidate/Evaluator.java | 1 - src/main/java/build/buf/protovalidate/MessageEvaluator.java | 1 - 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java index 0b12fd87..a59e0de9 100644 --- a/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java +++ b/conformance/src/main/java/build/buf/protovalidate/conformance/Main.java @@ -14,11 +14,11 @@ package build.buf.protovalidate.conformance; -import build.buf.protovalidate.exceptions.CompilationException; import build.buf.protovalidate.Config; -import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.protovalidate.ValidationResult; import build.buf.protovalidate.Validator; +import build.buf.protovalidate.exceptions.CompilationException; +import build.buf.protovalidate.exceptions.ExecutionException; import build.buf.validate.ValidateProto; import build.buf.validate.Violations; import build.buf.validate.conformance.harness.TestConformanceRequest; diff --git a/src/main/java/build/buf/protovalidate/CelPrograms.java b/src/main/java/build/buf/protovalidate/CelPrograms.java index beaa6e71..a3df4ed6 100644 --- a/src/main/java/build/buf/protovalidate/CelPrograms.java +++ b/src/main/java/build/buf/protovalidate/CelPrograms.java @@ -15,7 +15,6 @@ package build.buf.protovalidate; import build.buf.protovalidate.exceptions.ExecutionException; - import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; diff --git a/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java index be4dcddc..297688e8 100644 --- a/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/EmbeddedMessageEvaluator.java @@ -15,7 +15,6 @@ package build.buf.protovalidate; import build.buf.protovalidate.exceptions.ExecutionException; - import java.util.Collections; import java.util.List; diff --git a/src/main/java/build/buf/protovalidate/Evaluator.java b/src/main/java/build/buf/protovalidate/Evaluator.java index d36562b9..bb30a83c 100644 --- a/src/main/java/build/buf/protovalidate/Evaluator.java +++ b/src/main/java/build/buf/protovalidate/Evaluator.java @@ -15,7 +15,6 @@ package build.buf.protovalidate; import build.buf.protovalidate.exceptions.ExecutionException; - import java.util.List; /** diff --git a/src/main/java/build/buf/protovalidate/MessageEvaluator.java b/src/main/java/build/buf/protovalidate/MessageEvaluator.java index d15c2d70..f5523720 100644 --- a/src/main/java/build/buf/protovalidate/MessageEvaluator.java +++ b/src/main/java/build/buf/protovalidate/MessageEvaluator.java @@ -15,7 +15,6 @@ package build.buf.protovalidate; import build.buf.protovalidate.exceptions.ExecutionException; - import java.util.ArrayList; import java.util.List;