From 12c7d4c6b169c809fae8bd02062593ae82b93afb Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Tue, 3 Sep 2024 10:12:50 -0700 Subject: [PATCH 01/17] Add optional.unwrap PiperOrigin-RevId: 670606059 --- .../cel/extensions/CelOptionalLibrary.java | 13 +++++++++ runtime/src/test/resources/optional.baseline | 12 +++++++++ .../test/resources/optional_errors.baseline | 5 ++++ .../src/main/java/dev/cel/testing/BUILD.bazel | 2 ++ .../dev/cel/testing/BaseInterpreterTest.java | 27 +++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 runtime/src/test/resources/optional.baseline create mode 100644 runtime/src/test/resources/optional_errors.baseline diff --git a/extensions/src/main/java/dev/cel/extensions/CelOptionalLibrary.java b/extensions/src/main/java/dev/cel/extensions/CelOptionalLibrary.java index dad6e0a97..6398f9965 100644 --- a/extensions/src/main/java/dev/cel/extensions/CelOptionalLibrary.java +++ b/extensions/src/main/java/dev/cel/extensions/CelOptionalLibrary.java @@ -16,6 +16,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.collect.ImmutableList.toImmutableList; import com.google.common.collect.ImmutableList; import com.google.common.primitives.UnsignedLong; @@ -58,6 +59,7 @@ public enum Function { HAS_VALUE("hasValue"), OPTIONAL_NONE("optional.none"), OPTIONAL_OF("optional.of"), + OPTIONAL_UNWRAP("optional.unwrap"), OPTIONAL_OF_NON_ZERO_VALUE("optional.ofNonZeroValue"), OR("or"), OR_VALUE("orValue"); @@ -117,6 +119,10 @@ public void setCheckerOptions(CelCheckerBuilder checkerBuilder) { CelFunctionDecl.newFunctionDeclaration( Function.HAS_VALUE.getFunction(), CelOverloadDecl.newMemberOverload("optional_hasValue", SimpleType.BOOL, optionalTypeV)), + CelFunctionDecl.newFunctionDeclaration( + Function.OPTIONAL_UNWRAP.getFunction(), + CelOverloadDecl.newGlobalOverload( + "optional_unwrap_list", listTypeV, ListType.create(optionalTypeV))), // Note: Implementation of "or" and "orValue" are special-cased inside the interpreter. // Hence, their bindings are not provided here. CelFunctionDecl.newFunctionDeclaration( @@ -165,6 +171,7 @@ public void setCheckerOptions(CelCheckerBuilder checkerBuilder) { } @Override + @SuppressWarnings("unchecked") public void setRuntimeOptions(CelRuntimeBuilder runtimeBuilder) { runtimeBuilder.addFunctionBindings( CelRuntime.CelFunctionBinding.from("optional_of", Object.class, Optional::of), @@ -177,6 +184,8 @@ public void setRuntimeOptions(CelRuntimeBuilder runtimeBuilder) { } return Optional.of(val); }), + CelRuntime.CelFunctionBinding.from( + "optional_unwrap_list", Collection.class, CelOptionalLibrary::elideOptionalCollection), CelRuntime.CelFunctionBinding.from( "optional_none", ImmutableList.of(), val -> Optional.empty()), CelRuntime.CelFunctionBinding.from( @@ -185,6 +194,10 @@ public void setRuntimeOptions(CelRuntimeBuilder runtimeBuilder) { "optional_hasValue", Object.class, val -> ((Optional) val).isPresent())); } + private static ImmutableList elideOptionalCollection(Collection> list) { + return list.stream().filter(Optional::isPresent).map(Optional::get).collect(toImmutableList()); + } + // TODO: This will need to be adapted to handle an intermediate CelValue instead, // akin to Zeroer interface in Go. Currently, it is unable to handle zero-values for a // user-defined custom type. diff --git a/runtime/src/test/resources/optional.baseline b/runtime/src/test/resources/optional.baseline new file mode 100644 index 000000000..1e32c2696 --- /dev/null +++ b/runtime/src/test/resources/optional.baseline @@ -0,0 +1,12 @@ +Source: optional.unwrap([]) +=====> +bindings: {} +result: [] + +Source: optional.unwrap([optional.none(), optional.of(1), optional.of(str)]) +declare str { + value string +} +=====> +bindings: {str=foo} +result: [1, foo] diff --git a/runtime/src/test/resources/optional_errors.baseline b/runtime/src/test/resources/optional_errors.baseline new file mode 100644 index 000000000..819cc0c1e --- /dev/null +++ b/runtime/src/test/resources/optional_errors.baseline @@ -0,0 +1,5 @@ +Source: optional.unwrap([dyn(1)]) +=====> +bindings: {} +error: evaluation error: Function 'optional_unwrap_list' failed with arg(s) '[1]' +error_code: INTERNAL_ERROR diff --git a/testing/src/main/java/dev/cel/testing/BUILD.bazel b/testing/src/main/java/dev/cel/testing/BUILD.bazel index 5594c37be..37f264809 100644 --- a/testing/src/main/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/main/java/dev/cel/testing/BUILD.bazel @@ -100,6 +100,8 @@ java_library( "//common/internal:file_descriptor_converter", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", "//common/types:cel_types", + "//common/types:type_providers", + "//extensions:optional_library", "//runtime", "//runtime:runtime_helper", "@@protobuf~//java/core", diff --git a/testing/src/main/java/dev/cel/testing/BaseInterpreterTest.java b/testing/src/main/java/dev/cel/testing/BaseInterpreterTest.java index edcf5a260..68f343a19 100644 --- a/testing/src/main/java/dev/cel/testing/BaseInterpreterTest.java +++ b/testing/src/main/java/dev/cel/testing/BaseInterpreterTest.java @@ -65,7 +65,9 @@ import dev.cel.common.CelProtoAbstractSyntaxTree; import dev.cel.common.internal.DefaultDescriptorPool; import dev.cel.common.internal.FileDescriptorSetConverter; +import dev.cel.common.types.CelTypeProvider; import dev.cel.common.types.CelTypes; +import dev.cel.extensions.CelOptionalLibrary; import dev.cel.runtime.CelEvaluationException; import dev.cel.runtime.CelRuntime; import dev.cel.runtime.CelRuntime.CelFunctionBinding; @@ -127,11 +129,19 @@ public BaseInterpreterTest(CelOptions celOptions, boolean useNativeCelType) { this.celOptions = celOptions; this.celRuntime = CelRuntimeFactory.standardCelRuntimeBuilder() + .addLibraries(CelOptionalLibrary.INSTANCE) .addFileTypes(TEST_FILE_DESCRIPTORS) .setOptions(celOptions) .build(); } + @Override + protected void prepareCompiler(CelTypeProvider typeProvider) { + super.prepareCompiler(typeProvider); + this.celCompiler = + celCompiler.toCompilerBuilder().addLibraries(CelOptionalLibrary.INSTANCE).build(); + } + private CelAbstractSyntaxTree compileTestCase() { CelAbstractSyntaxTree ast = prepareTest(TEST_FILE_DESCRIPTORS); if (ast == null) { @@ -494,6 +504,23 @@ public void messages_error() { runTest(); } + @Test + public void optional() { + // TODO: Move existing optional tests here to also test CelValue runtime + source = "optional.unwrap([])"; + runTest(); + + declareVariable("str", CelTypes.STRING); + source = "optional.unwrap([optional.none(), optional.of(1), optional.of(str)])"; + runTest(ImmutableMap.of("str", "foo")); + } + + @Test + public void optional_errors() { + source = "optional.unwrap([dyn(1)])"; + runTest(); + } + @Test public void has() throws Exception { TestAllTypes nestedMessage = From 0c37f935c1a43173b9e34b4171a25758580867c2 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Tue, 3 Sep 2024 11:02:19 -0700 Subject: [PATCH 02/17] No public description PiperOrigin-RevId: 670627244 --- checker/src/main/java/dev/cel/checker/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/BUILD.bazel | 1 + parser/src/main/java/dev/cel/parser/BUILD.bazel | 2 ++ parser/src/test/java/dev/cel/parser/BUILD.bazel | 1 + policy/src/main/java/dev/cel/policy/BUILD.bazel | 2 ++ validator/src/main/java/dev/cel/validator/BUILD.bazel | 1 + 6 files changed, 8 insertions(+) diff --git a/checker/src/main/java/dev/cel/checker/BUILD.bazel b/checker/src/main/java/dev/cel/checker/BUILD.bazel index 039eb7f6c..a6ea9153b 100644 --- a/checker/src/main/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/main/java/dev/cel/checker/BUILD.bazel @@ -73,6 +73,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:source_location", "//common/annotations", "//common/ast:expr_converter", "//common/internal:env_visitor", diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index f5c08b3b4..ad71d2862 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -16,6 +16,7 @@ java_library( "//common:options", "//common:proto_json_adapter", "//common:proto_v1alpha1_ast", + "//common:source_location", "//common/ast", "//common/internal", "//common/types", diff --git a/parser/src/main/java/dev/cel/parser/BUILD.bazel b/parser/src/main/java/dev/cel/parser/BUILD.bazel index e3d13b92b..53f7e5fa8 100644 --- a/parser/src/main/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/main/java/dev/cel/parser/BUILD.bazel @@ -48,6 +48,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:source_location", "//common/annotations", "//common/ast", "//common/internal", @@ -82,6 +83,7 @@ java_library( "//:auto_value", "//common", "//common:compiler_common", + "//common:source_location", "//common/ast", "//common/ast:expr_factory", "@maven//:com_google_errorprone_error_prone_annotations", diff --git a/parser/src/test/java/dev/cel/parser/BUILD.bazel b/parser/src/test/java/dev/cel/parser/BUILD.bazel index fe29d5d43..2ae7e5b8b 100644 --- a/parser/src/test/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/test/java/dev/cel/parser/BUILD.bazel @@ -15,6 +15,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:source_location", "//common/ast", "//common/internal", "//extensions:optional_library", diff --git a/policy/src/main/java/dev/cel/policy/BUILD.bazel b/policy/src/main/java/dev/cel/policy/BUILD.bazel index bdb651d0d..2b65da2e2 100644 --- a/policy/src/main/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/main/java/dev/cel/policy/BUILD.bazel @@ -251,6 +251,7 @@ java_library( "//bundle:cel", "//common", "//common:compiler_common", + "//common:source_location", "//common/ast", "//common/types", "//common/types:type_providers", @@ -332,6 +333,7 @@ java_library( ":value_string", "//common", "//common:compiler_common", + "//common:source_location", "@maven//:com_google_guava_guava", "@maven//:org_yaml_snakeyaml", ], diff --git a/validator/src/main/java/dev/cel/validator/BUILD.bazel b/validator/src/main/java/dev/cel/validator/BUILD.bazel index a3d92d75d..ed4ecc570 100644 --- a/validator/src/main/java/dev/cel/validator/BUILD.bazel +++ b/validator/src/main/java/dev/cel/validator/BUILD.bazel @@ -68,6 +68,7 @@ java_library( "//bundle:cel", "//common", "//common:compiler_common", + "//common:source_location", "//common/navigation", "@maven//:com_google_guava_guava", ], From cd376a1589f16da9f1fd62c7cf95ede6eca01e99 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Tue, 3 Sep 2024 13:12:31 -0700 Subject: [PATCH 03/17] No public description PiperOrigin-RevId: 670678229 --- bundle/src/test/java/dev/cel/bundle/BUILD.bazel | 1 - checker/src/main/java/dev/cel/checker/BUILD.bazel | 2 +- checker/src/test/java/dev/cel/checker/BUILD.bazel | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel index 3ca1dd570..a324daf1d 100644 --- a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel @@ -18,7 +18,6 @@ java_library( "//common", "//common:compiler_common", "//common:options", - "//common:proto_ast", "//common/ast", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", "//common/testing", diff --git a/checker/src/main/java/dev/cel/checker/BUILD.bazel b/checker/src/main/java/dev/cel/checker/BUILD.bazel index a6ea9153b..bdede0fb6 100644 --- a/checker/src/main/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/main/java/dev/cel/checker/BUILD.bazel @@ -167,10 +167,10 @@ java_library( deps = [ ":cel_ident_decl", "//:auto_value", + "//common", "//common:compiler_common", "//common:features", "//common:options", - "//common:proto_ast", "//common/annotations", "//common/ast", "//common/ast:expr_converter", diff --git a/checker/src/test/java/dev/cel/checker/BUILD.bazel b/checker/src/test/java/dev/cel/checker/BUILD.bazel index ff4b87a34..96497c836 100644 --- a/checker/src/test/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/test/java/dev/cel/checker/BUILD.bazel @@ -23,7 +23,6 @@ java_library( "//checker:type_provider_legacy_impl", "//common", "//common:compiler_common", - "//common:proto_ast", "//common/ast", "//common/internal:env_visitor", "//common/internal:errors", From e5a091d14eef637ee420dd12934a4dfaec826467 Mon Sep 17 00:00:00 2001 From: Tristan Swadell Date: Tue, 3 Sep 2024 14:02:34 -0700 Subject: [PATCH 04/17] Refactor CEL Policy build targets to support extension PiperOrigin-RevId: 670697589 --- policy/BUILD.bazel | 5 +++ .../src/main/java/dev/cel/policy/BUILD.bazel | 19 +++++++++- .../main/java/dev/cel/policy/ValueString.java | 14 +++++-- .../main/java/dev/cel/policy/YamlHelper.java | 37 ++++++++++--------- 4 files changed, 52 insertions(+), 23 deletions(-) diff --git a/policy/BUILD.bazel b/policy/BUILD.bazel index 4773984b4..4c18f3b7d 100644 --- a/policy/BUILD.bazel +++ b/policy/BUILD.bazel @@ -72,3 +72,8 @@ java_library( name = "compiler_builder", exports = ["//policy/src/main/java/dev/cel/policy:compiler_builder"], ) + +java_library( + name = "yaml_helper", + exports = ["//policy/src/main/java/dev/cel/policy:yaml_helper"], +) diff --git a/policy/src/main/java/dev/cel/policy/BUILD.bazel b/policy/src/main/java/dev/cel/policy/BUILD.bazel index 2b65da2e2..7176ece6a 100644 --- a/policy/src/main/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/main/java/dev/cel/policy/BUILD.bazel @@ -113,6 +113,7 @@ java_library( ":source", ":validation_exception", ":value_string", + ":yaml_helper", "//common:compiler_common", "//common/internal", "@maven//:com_google_guava_guava", @@ -292,6 +293,7 @@ java_library( ":parser_context", ":source", ":validation_exception", + ":yaml_helper", "//common:compiler_common", "//common/internal", "@maven//:com_google_guava_guava", @@ -323,7 +325,6 @@ java_library( java_library( name = "common_internal", srcs = [ - "YamlHelper.java", "YamlParserContextImpl.java", ], visibility = ["//visibility:private"], @@ -331,9 +332,23 @@ java_library( ":parser_context", ":source", ":value_string", + ":yaml_helper", "//common", "//common:compiler_common", - "//common:source_location", + "@maven//:com_google_guava_guava", + "@maven//:org_yaml_snakeyaml", + ], +) + +java_library( + name = "yaml_helper", + srcs = [ + "YamlHelper.java", + ], + tags = [ + ], + deps = [ + ":parser_context", "@maven//:com_google_guava_guava", "@maven//:org_yaml_snakeyaml", ], diff --git a/policy/src/main/java/dev/cel/policy/ValueString.java b/policy/src/main/java/dev/cel/policy/ValueString.java index 24c56f4ee..f3039513f 100644 --- a/policy/src/main/java/dev/cel/policy/ValueString.java +++ b/policy/src/main/java/dev/cel/policy/ValueString.java @@ -23,18 +23,24 @@ public abstract class ValueString { /** A unique identifier. This is populated by the parser. */ public abstract long id(); + /** String value of the {@code ValueString} */ public abstract String value(); + /** Builder for {@link ValueString}. */ @AutoValue.Builder - abstract static class Builder { + public abstract static class Builder { - abstract Builder setId(long id); + /** Set the identifier for the string to associate it back to collected source metadata. */ + public abstract Builder setId(long id); - abstract Builder setValue(String value); + /** Set the string value. */ + public abstract Builder setValue(String value); - abstract ValueString build(); + /** Build the {@code ValueString}. */ + public abstract ValueString build(); } + /** Convert the {@code ValueString} to a {@code Builder}. */ public abstract Builder toBuilder(); /** Builder for {@link ValueString}. */ diff --git a/policy/src/main/java/dev/cel/policy/YamlHelper.java b/policy/src/main/java/dev/cel/policy/YamlHelper.java index 276c09be4..c289c73f6 100644 --- a/policy/src/main/java/dev/cel/policy/YamlHelper.java +++ b/policy/src/main/java/dev/cel/policy/YamlHelper.java @@ -26,10 +26,12 @@ import org.yaml.snakeyaml.nodes.Node; import org.yaml.snakeyaml.nodes.ScalarNode; -final class YamlHelper { +/** Helper class for parsing YAML. */ +public final class YamlHelper { static final String ERROR = "*error*"; - enum YamlNodeType { + /** Enum for YAML node types. */ + public enum YamlNodeType { MAP("tag:yaml.org,2002:map"), STRING("tag:yaml.org,2002:str"), BOOLEAN("tag:yaml.org,2002:bool"), @@ -50,6 +52,22 @@ String tag() { } } + /** Assert that a given YAML node matches one of the provided {@code YamlNodeType} values. */ + public static boolean assertYamlType( + ParserContext ctx, long id, Node node, YamlNodeType... expectedNodeTypes) { + if (validateYamlType(node, expectedNodeTypes)) { + return true; + } + String nodeTag = node.getTag().getValue(); + + ctx.reportError( + id, + String.format( + "Got yaml node type %s, wanted type(s) [%s]", + nodeTag, stream(expectedNodeTypes).map(YamlNodeType::tag).collect(joining(" ")))); + return false; + } + static Node parseYamlSource(String policyContent) { Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())); @@ -79,21 +97,6 @@ static boolean validateYamlType(Node node, YamlNodeType... expectedNodeTypes) { return false; } - static boolean assertYamlType( - ParserContext ctx, long id, Node node, YamlNodeType... expectedNodeTypes) { - if (validateYamlType(node, expectedNodeTypes)) { - return true; - } - String nodeTag = node.getTag().getValue(); - - ctx.reportError( - id, - String.format( - "Got yaml node type %s, wanted type(s) [%s]", - nodeTag, stream(expectedNodeTypes).map(YamlNodeType::tag).collect(joining(" ")))); - return false; - } - static Integer newInteger(ParserContext ctx, Node node) { long id = ctx.collectMetadata(node); if (!assertYamlType(ctx, id, node, YamlNodeType.INTEGER)) { From f6274539e9bbf2b31f7cf12cf7f221e13345c267 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Wed, 4 Sep 2024 10:23:06 -0700 Subject: [PATCH 05/17] Internal Changes PiperOrigin-RevId: 671016096 --- common/src/main/java/dev/cel/common/BUILD.bazel | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/dev/cel/common/BUILD.bazel b/common/src/main/java/dev/cel/common/BUILD.bazel index 4706fb93d..2cc373fc2 100644 --- a/common/src/main/java/dev/cel/common/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/BUILD.bazel @@ -108,7 +108,17 @@ java_library( java_library( name = "proto_ast", - exports = [":common"], # TODO Split target after migrating callers + srcs = ["CelProtoAbstractSyntaxTree.java"], + tags = [ + ], + deps = [ + "//common", + "//common/ast:expr_converter", + "//common/types:cel_types", + "@cel_spec//proto/cel/expr:expr_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + ], ) java_library( From 31e4f652b891fb5e909c2e82093828526c824010 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Wed, 4 Sep 2024 12:46:16 -0700 Subject: [PATCH 06/17] Internal Changes PiperOrigin-RevId: 671066199 --- common/BUILD.bazel | 5 +---- policy/src/main/java/dev/cel/policy/BUILD.bazel | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/common/BUILD.bazel b/common/BUILD.bazel index 3af0c0c66..43d94e552 100644 --- a/common/BUILD.bazel +++ b/common/BUILD.bazel @@ -5,10 +5,7 @@ package( java_library( name = "common", - exports = [ - "//common/src/main/java/dev/cel/common", - "//common/src/main/java/dev/cel/common:source_location", # TODO: Split callers - ], + exports = ["//common/src/main/java/dev/cel/common"], ) java_library( diff --git a/policy/src/main/java/dev/cel/policy/BUILD.bazel b/policy/src/main/java/dev/cel/policy/BUILD.bazel index 7176ece6a..e515acaf6 100644 --- a/policy/src/main/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/main/java/dev/cel/policy/BUILD.bazel @@ -115,6 +115,7 @@ java_library( ":value_string", ":yaml_helper", "//common:compiler_common", + "//common:source_location", "//common/internal", "@maven//:com_google_guava_guava", "@maven//:org_yaml_snakeyaml", @@ -335,6 +336,7 @@ java_library( ":yaml_helper", "//common", "//common:compiler_common", + "//common:source_location", "@maven//:com_google_guava_guava", "@maven//:org_yaml_snakeyaml", ], From a377c1695ba0465fbf2daa40ec734ca16ad82b1f Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Wed, 4 Sep 2024 17:40:47 -0700 Subject: [PATCH 07/17] No public description PiperOrigin-RevId: 671160923 --- bundle/src/test/java/dev/cel/bundle/BUILD.bazel | 1 + checker/src/main/java/dev/cel/checker/BUILD.bazel | 2 ++ checker/src/test/java/dev/cel/checker/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/BUILD.bazel | 1 + parser/src/test/java/dev/cel/parser/BUILD.bazel | 1 + runtime/src/main/java/dev/cel/runtime/BUILD.bazel | 3 +++ testing/src/main/java/dev/cel/testing/BUILD.bazel | 1 + .../src/test/java/dev/cel/validator/validators/BUILD.bazel | 1 + 8 files changed, 11 insertions(+) diff --git a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel index a324daf1d..3ca1dd570 100644 --- a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel @@ -18,6 +18,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:proto_ast", "//common/ast", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", "//common/testing", diff --git a/checker/src/main/java/dev/cel/checker/BUILD.bazel b/checker/src/main/java/dev/cel/checker/BUILD.bazel index bdede0fb6..96cbd5981 100644 --- a/checker/src/main/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/main/java/dev/cel/checker/BUILD.bazel @@ -171,6 +171,7 @@ java_library( "//common:compiler_common", "//common:features", "//common:options", + "//common:proto_ast", "//common/annotations", "//common/ast", "//common/ast:expr_converter", @@ -213,5 +214,6 @@ java_library( deps = [ ":checker_legacy_environment", "//common", + "//common:proto_ast", ], ) diff --git a/checker/src/test/java/dev/cel/checker/BUILD.bazel b/checker/src/test/java/dev/cel/checker/BUILD.bazel index 96497c836..ff4b87a34 100644 --- a/checker/src/test/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/test/java/dev/cel/checker/BUILD.bazel @@ -23,6 +23,7 @@ java_library( "//checker:type_provider_legacy_impl", "//common", "//common:compiler_common", + "//common:proto_ast", "//common/ast", "//common/internal:env_visitor", "//common/internal:errors", diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index ad71d2862..311583690 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -14,6 +14,7 @@ java_library( "//common:compiler_common", "//common:features", "//common:options", + "//common:proto_ast", "//common:proto_json_adapter", "//common:proto_v1alpha1_ast", "//common:source_location", diff --git a/parser/src/test/java/dev/cel/parser/BUILD.bazel b/parser/src/test/java/dev/cel/parser/BUILD.bazel index 2ae7e5b8b..54510a2bf 100644 --- a/parser/src/test/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/test/java/dev/cel/parser/BUILD.bazel @@ -15,6 +15,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:proto_ast", "//common:source_location", "//common/ast", "//common/internal", diff --git a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel index 109e13d97..da45a5ea0 100644 --- a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel @@ -46,6 +46,7 @@ java_library( "//common", "//common:error_codes", "//common:options", + "//common:proto_ast", "//common:runtime_exception", "//common/annotations", "//common/internal:comparison_functions", @@ -81,6 +82,7 @@ java_library( "//common:error_codes", "//common:features", "//common:options", + "//common:proto_ast", "//common:runtime_exception", "//common/annotations", "//common/ast", @@ -191,6 +193,7 @@ java_library( ":unknown_attributes", "//common", "//common:compiler_common", + "//common:proto_ast", "//parser", "//parser:operator", "//parser:parser_builder", diff --git a/testing/src/main/java/dev/cel/testing/BUILD.bazel b/testing/src/main/java/dev/cel/testing/BUILD.bazel index 37f264809..f4054402b 100644 --- a/testing/src/main/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/main/java/dev/cel/testing/BUILD.bazel @@ -96,6 +96,7 @@ java_library( "//:java_truth", "//common", "//common:options", + "//common:proto_ast", "//common/internal:cel_descriptor_pools", "//common/internal:file_descriptor_converter", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", diff --git a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel index a04ee6d1e..2383801bc 100644 --- a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel @@ -12,6 +12,7 @@ java_library( "//common", "//common:compiler_common", "//common:options", + "//common:proto_ast", "//common/types", "//extensions:optional_library", "//runtime", From 10bb524bddc7c32a55101f6b4967eb52cd14fb18 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Fri, 6 Sep 2024 16:26:53 -0700 Subject: [PATCH 08/17] Internal Changes PiperOrigin-RevId: 671926094 --- common/src/main/java/dev/cel/common/BUILD.bazel | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/dev/cel/common/BUILD.bazel b/common/src/main/java/dev/cel/common/BUILD.bazel index 2cc373fc2..fb74c9d66 100644 --- a/common/src/main/java/dev/cel/common/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/BUILD.bazel @@ -12,7 +12,6 @@ COMMON_SOURCES = [ "CelDescriptorUtil.java", "CelDescriptors.java", "CelException.java", - "CelProtoAbstractSyntaxTree.java", # TODO Split target after migrating callers "CelSource.java", ] @@ -32,6 +31,11 @@ SOURCE_SOURCES = [ "Source.java", ] +# keep sorted +PROTO_AST_SOURCE = [ + "CelProtoAbstractSyntaxTree.java", +] + # keep sorted PROTO_V1ALPHA1_AST_SOURCE = [ "CelProtoV1Alpha1AbstractSyntaxTree.java", @@ -49,7 +53,6 @@ java_library( "//:auto_value", "//common/annotations", "//common/ast", - "//common/ast:expr_converter", "//common/internal", "//common/internal:file_descriptor_converter", "//common/types", @@ -108,7 +111,7 @@ java_library( java_library( name = "proto_ast", - srcs = ["CelProtoAbstractSyntaxTree.java"], + srcs = PROTO_AST_SOURCE, tags = [ ], deps = [ From 1a2a396b3cb2f5fb268d8201fc276814b8373afe Mon Sep 17 00:00:00 2001 From: Tristan Swadell Date: Wed, 11 Sep 2024 15:15:52 -0700 Subject: [PATCH 09/17] Expose CelPolicyValidationException constructors PiperOrigin-RevId: 673555726 --- .../java/dev/cel/policy/CelPolicyValidationException.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/policy/src/main/java/dev/cel/policy/CelPolicyValidationException.java b/policy/src/main/java/dev/cel/policy/CelPolicyValidationException.java index 1f7dc6ac2..4d52fcc1d 100644 --- a/policy/src/main/java/dev/cel/policy/CelPolicyValidationException.java +++ b/policy/src/main/java/dev/cel/policy/CelPolicyValidationException.java @@ -20,11 +20,11 @@ */ public final class CelPolicyValidationException extends Exception { - CelPolicyValidationException(String message) { + public CelPolicyValidationException(String message) { super(message); } - CelPolicyValidationException(String message, Throwable cause) { + public CelPolicyValidationException(String message, Throwable cause) { super(message, cause); } } From d98e0b1f7a78f381b887c7b22736157eba7c5510 Mon Sep 17 00:00:00 2001 From: CEL Dev Team Date: Mon, 23 Sep 2024 23:37:08 -0700 Subject: [PATCH 10/17] Load the builtin Bazel java rules from @rules_java PiperOrigin-RevId: 678098294 --- bundle/BUILD.bazel | 2 ++ bundle/src/main/java/dev/cel/bundle/BUILD.bazel | 2 ++ bundle/src/test/java/dev/cel/bundle/BUILD.bazel | 1 + checker/BUILD.bazel | 2 ++ checker/src/main/java/dev/cel/checker/BUILD.bazel | 2 ++ checker/src/test/java/dev/cel/checker/BUILD.bazel | 1 + codelab/BUILD.bazel | 2 ++ codelab/src/main/codelab/BUILD.bazel | 2 ++ codelab/src/main/codelab/solutions/BUILD.bazel | 2 ++ codelab/src/test/codelab/BUILD.bazel | 2 ++ codelab/src/test/codelab/solutions/BUILD.bazel | 2 ++ common/BUILD.bazel | 2 ++ common/annotations/BUILD.bazel | 2 ++ common/ast/BUILD.bazel | 2 ++ common/internal/BUILD.bazel | 2 ++ common/navigation/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/annotations/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/ast/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/internal/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/navigation/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/testing/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/types/BUILD.bazel | 2 ++ common/src/main/java/dev/cel/common/values/BUILD.bazel | 2 ++ 24 files changed, 46 insertions(+) diff --git a/bundle/BUILD.bazel b/bundle/BUILD.bazel index e562cff00..91336cdf5 100644 --- a/bundle/BUILD.bazel +++ b/bundle/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/bundle/src/main/java/dev/cel/bundle/BUILD.bazel b/bundle/src/main/java/dev/cel/bundle/BUILD.bazel index 70744129c..5ef5123c1 100644 --- a/bundle/src/main/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/main/java/dev/cel/bundle/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel index 3ca1dd570..8b191c25a 100644 --- a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/checker/BUILD.bazel b/checker/BUILD.bazel index 25fc8d739..8add14f59 100644 --- a/checker/BUILD.bazel +++ b/checker/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/checker/src/main/java/dev/cel/checker/BUILD.bazel b/checker/src/main/java/dev/cel/checker/BUILD.bazel index 96cbd5981..3d209db4e 100644 --- a/checker/src/main/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/main/java/dev/cel/checker/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/checker/src/test/java/dev/cel/checker/BUILD.bazel b/checker/src/test/java/dev/cel/checker/BUILD.bazel index ff4b87a34..096207cc5 100644 --- a/checker/src/test/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/test/java/dev/cel/checker/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/codelab/BUILD.bazel b/codelab/BUILD.bazel index eea160dc4..95bb127b6 100644 --- a/codelab/BUILD.bazel +++ b/codelab/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//codelab:__subpackages__"], diff --git a/codelab/src/main/codelab/BUILD.bazel b/codelab/src/main/codelab/BUILD.bazel index 7b3065e47..2b3eb0247 100644 --- a/codelab/src/main/codelab/BUILD.bazel +++ b/codelab/src/main/codelab/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/codelab/src/main/codelab/solutions/BUILD.bazel b/codelab/src/main/codelab/solutions/BUILD.bazel index 42820a846..2060e3e8c 100644 --- a/codelab/src/main/codelab/solutions/BUILD.bazel +++ b/codelab/src/main/codelab/solutions/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/codelab/src/test/codelab/BUILD.bazel b/codelab/src/test/codelab/BUILD.bazel index 84363646a..1b39618d0 100644 --- a/codelab/src/test/codelab/BUILD.bazel +++ b/codelab/src/test/codelab/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_test") + package(default_applicable_licenses = [ "//:license", ]) diff --git a/codelab/src/test/codelab/solutions/BUILD.bazel b/codelab/src/test/codelab/solutions/BUILD.bazel index be146d8f9..6438f8ee2 100644 --- a/codelab/src/test/codelab/solutions/BUILD.bazel +++ b/codelab/src/test/codelab/solutions/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_test") + package(default_applicable_licenses = [ "//:license", ]) diff --git a/common/BUILD.bazel b/common/BUILD.bazel index 43d94e552..af0bf8abb 100644 --- a/common/BUILD.bazel +++ b/common/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/annotations/BUILD.bazel b/common/annotations/BUILD.bazel index 62a6ccfd9..046955e82 100644 --- a/common/annotations/BUILD.bazel +++ b/common/annotations/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/ast/BUILD.bazel b/common/ast/BUILD.bazel index 5400e6a8e..0a27ae0bc 100644 --- a/common/ast/BUILD.bazel +++ b/common/ast/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/internal/BUILD.bazel b/common/internal/BUILD.bazel index 6293804f2..63c8bcbf0 100644 --- a/common/internal/BUILD.bazel +++ b/common/internal/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/navigation/BUILD.bazel b/common/navigation/BUILD.bazel index df3447513..1dba25b8e 100644 --- a/common/navigation/BUILD.bazel +++ b/common/navigation/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/src/main/java/dev/cel/common/BUILD.bazel b/common/src/main/java/dev/cel/common/BUILD.bazel index fb74c9d66..e254ffbdd 100644 --- a/common/src/main/java/dev/cel/common/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/common/src/main/java/dev/cel/common/annotations/BUILD.bazel b/common/src/main/java/dev/cel/common/annotations/BUILD.bazel index 434eede90..cdfa32938 100644 --- a/common/src/main/java/dev/cel/common/annotations/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/annotations/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/ast/BUILD.bazel b/common/src/main/java/dev/cel/common/ast/BUILD.bazel index 6c1709f1a..8cc9be997 100644 --- a/common/src/main/java/dev/cel/common/ast/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/ast/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/internal/BUILD.bazel b/common/src/main/java/dev/cel/common/internal/BUILD.bazel index 70a91fc8c..a86c9aa79 100644 --- a/common/src/main/java/dev/cel/common/internal/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/internal/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/navigation/BUILD.bazel b/common/src/main/java/dev/cel/common/navigation/BUILD.bazel index b3bccf67b..2c5a80fe7 100644 --- a/common/src/main/java/dev/cel/common/navigation/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/navigation/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/testing/BUILD.bazel b/common/src/main/java/dev/cel/common/testing/BUILD.bazel index a5b967b16..574638e35 100644 --- a/common/src/main/java/dev/cel/common/testing/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/testing/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/types/BUILD.bazel b/common/src/main/java/dev/cel/common/types/BUILD.bazel index 19c741e0f..a1f1a68d4 100644 --- a/common/src/main/java/dev/cel/common/types/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/types/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/common/src/main/java/dev/cel/common/values/BUILD.bazel b/common/src/main/java/dev/cel/common/values/BUILD.bazel index fcb1269fa..8f1aa06c2 100644 --- a/common/src/main/java/dev/cel/common/values/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/values/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", From 1fdbc4fbe0c652655686f761595c89d86c33071e Mon Sep 17 00:00:00 2001 From: CEL Dev Team Date: Mon, 23 Sep 2024 23:37:12 -0700 Subject: [PATCH 11/17] Load the builtin Bazel java rules from @rules_java PiperOrigin-RevId: 678098303 --- common/src/test/java/dev/cel/common/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/ast/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/internal/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/navigation/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/types/BUILD.bazel | 1 + common/src/test/java/dev/cel/common/values/BUILD.bazel | 1 + common/testing/BUILD.bazel | 2 ++ common/types/BUILD.bazel | 2 ++ common/values/BUILD.bazel | 2 ++ compiler/BUILD.bazel | 2 ++ compiler/src/main/java/dev/cel/compiler/BUILD.bazel | 2 ++ conformance/src/test/java/dev/cel/conformance/BUILD.bazel | 1 + extensions/BUILD.bazel | 2 ++ extensions/src/main/java/dev/cel/extensions/BUILD.bazel | 2 ++ extensions/src/test/java/dev/cel/extensions/BUILD.bazel | 1 + optimizer/BUILD.bazel | 2 ++ optimizer/optimizers/BUILD.bazel | 2 ++ optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel | 2 ++ .../src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel | 2 ++ optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel | 1 + .../src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel | 1 + parser/BUILD.bazel | 2 ++ parser/src/main/java/dev/cel/parser/BUILD.bazel | 2 ++ parser/src/main/java/dev/cel/parser/gen/BUILD.bazel | 1 + parser/src/test/java/dev/cel/parser/BUILD.bazel | 1 + 25 files changed, 38 insertions(+) diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index 311583690..0f201e480 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/common/src/test/java/dev/cel/common/ast/BUILD.bazel b/common/src/test/java/dev/cel/common/ast/BUILD.bazel index 2097a25f7..5cfc4eb63 100644 --- a/common/src/test/java/dev/cel/common/ast/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/ast/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/common/src/test/java/dev/cel/common/internal/BUILD.bazel b/common/src/test/java/dev/cel/common/internal/BUILD.bazel index fa46ced6d..9a033b00a 100644 --- a/common/src/test/java/dev/cel/common/internal/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/internal/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/common/src/test/java/dev/cel/common/navigation/BUILD.bazel b/common/src/test/java/dev/cel/common/navigation/BUILD.bazel index c754e80df..f269a0ce3 100644 --- a/common/src/test/java/dev/cel/common/navigation/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/navigation/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/common/src/test/java/dev/cel/common/types/BUILD.bazel b/common/src/test/java/dev/cel/common/types/BUILD.bazel index 432ff1570..a084efd62 100644 --- a/common/src/test/java/dev/cel/common/types/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/types/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/common/src/test/java/dev/cel/common/values/BUILD.bazel b/common/src/test/java/dev/cel/common/values/BUILD.bazel index 92b71c6db..00800a01c 100644 --- a/common/src/test/java/dev/cel/common/values/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/values/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/common/testing/BUILD.bazel b/common/testing/BUILD.bazel index b98bc4c68..a88ccf4f9 100644 --- a/common/testing/BUILD.bazel +++ b/common/testing/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_testonly = True, diff --git a/common/types/BUILD.bazel b/common/types/BUILD.bazel index af81a975b..76904d76b 100644 --- a/common/types/BUILD.bazel +++ b/common/types/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/common/values/BUILD.bazel b/common/values/BUILD.bazel index 931999b4c..c7efe7dee 100644 --- a/common/values/BUILD.bazel +++ b/common/values/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], # TODO: Expose to public when ready diff --git a/compiler/BUILD.bazel b/compiler/BUILD.bazel index e5e41e0a5..5bb7d7129 100644 --- a/compiler/BUILD.bazel +++ b/compiler/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/compiler/src/main/java/dev/cel/compiler/BUILD.bazel b/compiler/src/main/java/dev/cel/compiler/BUILD.bazel index 1f58aafe9..63a9cd4e6 100644 --- a/compiler/src/main/java/dev/cel/compiler/BUILD.bazel +++ b/compiler/src/main/java/dev/cel/compiler/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/conformance/src/test/java/dev/cel/conformance/BUILD.bazel b/conformance/src/test/java/dev/cel/conformance/BUILD.bazel index 6b60d77d4..f3014aca5 100644 --- a/conformance/src/test/java/dev/cel/conformance/BUILD.bazel +++ b/conformance/src/test/java/dev/cel/conformance/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//conformance/src/test/java/dev/cel/conformance:conformance_test.bzl", "conformance_test") package(default_applicable_licenses = [ diff --git a/extensions/BUILD.bazel b/extensions/BUILD.bazel index 70956e336..5f520c418 100644 --- a/extensions/BUILD.bazel +++ b/extensions/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/extensions/src/main/java/dev/cel/extensions/BUILD.bazel b/extensions/src/main/java/dev/cel/extensions/BUILD.bazel index 7f6652666..a3256ecca 100644 --- a/extensions/src/main/java/dev/cel/extensions/BUILD.bazel +++ b/extensions/src/main/java/dev/cel/extensions/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel index 13411adb0..4ed844381 100644 --- a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel +++ b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/optimizer/BUILD.bazel b/optimizer/BUILD.bazel index 1dd584b4e..9468b01a9 100644 --- a/optimizer/BUILD.bazel +++ b/optimizer/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/optimizer/optimizers/BUILD.bazel b/optimizer/optimizers/BUILD.bazel index 5debf13bc..21241241f 100644 --- a/optimizer/optimizers/BUILD.bazel +++ b/optimizer/optimizers/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel b/optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel index fcd85ce72..af01d1a1c 100644 --- a/optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel +++ b/optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/optimizer/src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel b/optimizer/src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel index 9b679d9bd..396925ef7 100644 --- a/optimizer/src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel +++ b/optimizer/src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel b/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel index 322b642a7..9dd7d616d 100644 --- a/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel +++ b/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel b/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel index d988c4e56..92ef80377 100644 --- a/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel +++ b/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel index ba31cd46a..89bfed336 100644 --- a/parser/BUILD.bazel +++ b/parser/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/parser/src/main/java/dev/cel/parser/BUILD.bazel b/parser/src/main/java/dev/cel/parser/BUILD.bazel index 53f7e5fa8..d86b48668 100644 --- a/parser/src/main/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/main/java/dev/cel/parser/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel b/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel index 5eee82579..8b912168c 100644 --- a/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel +++ b/parser/src/main/java/dev/cel/parser/gen/BUILD.bazel @@ -4,6 +4,7 @@ to avoid a path conflict with parser/src/main/java/dev/cel/parser/CelParser.java that causes build failures on filesystems with case-insensitive paths (e.g. macOS). """ +load("@rules_java//java:defs.bzl", "java_library") load("//:antlr.bzl", "antlr4_java_combined") package( diff --git a/parser/src/test/java/dev/cel/parser/BUILD.bazel b/parser/src/test/java/dev/cel/parser/BUILD.bazel index 54510a2bf..8697baad6 100644 --- a/parser/src/test/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/test/java/dev/cel/parser/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ From a9e8c8264687ade06834faee491a18a0cd2314e7 Mon Sep 17 00:00:00 2001 From: CEL Dev Team Date: Wed, 25 Sep 2024 09:27:55 -0700 Subject: [PATCH 12/17] Load the builtin Bazel java rules from @rules_java PiperOrigin-RevId: 678732015 --- policy/BUILD.bazel | 2 ++ policy/src/main/java/dev/cel/policy/BUILD.bazel | 2 ++ policy/src/test/java/dev/cel/policy/BUILD.bazel | 1 + runtime/BUILD.bazel | 2 ++ runtime/async/BUILD.bazel | 2 ++ runtime/src/main/java/dev/cel/runtime/BUILD.bazel | 2 ++ runtime/src/main/java/dev/cel/runtime/async/BUILD.bazel | 2 ++ runtime/src/test/java/dev/cel/runtime/BUILD.bazel | 1 + runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel | 1 + testing/BUILD.bazel | 2 ++ testing/src/main/java/dev/cel/testing/BUILD.bazel | 2 ++ testing/src/test/java/dev/cel/testing/BUILD.bazel | 1 + validator/BUILD.bazel | 2 ++ validator/src/main/java/dev/cel/validator/BUILD.bazel | 2 ++ .../src/main/java/dev/cel/validator/validators/BUILD.bazel | 2 ++ validator/src/test/java/dev/cel/validator/BUILD.bazel | 1 + .../src/test/java/dev/cel/validator/validators/BUILD.bazel | 1 + validator/validators/BUILD.bazel | 2 ++ 18 files changed, 30 insertions(+) diff --git a/policy/BUILD.bazel b/policy/BUILD.bazel index 4c18f3b7d..e0a3a9d5d 100644 --- a/policy/BUILD.bazel +++ b/policy/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/policy/src/main/java/dev/cel/policy/BUILD.bazel b/policy/src/main/java/dev/cel/policy/BUILD.bazel index e515acaf6..546853bb8 100644 --- a/policy/src/main/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/main/java/dev/cel/policy/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/policy/src/test/java/dev/cel/policy/BUILD.bazel b/policy/src/test/java/dev/cel/policy/BUILD.bazel index dff3e974d..09a1a98c2 100644 --- a/policy/src/test/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/test/java/dev/cel/policy/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/runtime/BUILD.bazel b/runtime/BUILD.bazel index b08b341f8..8c0c72a6a 100644 --- a/runtime/BUILD.bazel +++ b/runtime/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/runtime/async/BUILD.bazel b/runtime/async/BUILD.bazel index 8b87567df..137f5e274 100644 --- a/runtime/async/BUILD.bazel +++ b/runtime/async/BUILD.bazel @@ -1,5 +1,7 @@ # Reference implementation for an Async evaluator for the CEL runtime. +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel index da45a5ea0..6a8c1cea0 100644 --- a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/runtime/src/main/java/dev/cel/runtime/async/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/async/BUILD.bazel index 8e2042bc9..4e481b963 100644 --- a/runtime/src/main/java/dev/cel/runtime/async/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/async/BUILD.bazel @@ -1,5 +1,7 @@ # Reference implementation for an Async evaluator for the CEL runtime. +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = [ "//:license", diff --git a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel index 0cafcda6b..6a80864c2 100644 --- a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel index 98a575c2e..cbbf32e04 100644 --- a/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/testing/BUILD.bazel b/testing/BUILD.bazel index 1370356ba..ac39753b3 100644 --- a/testing/BUILD.bazel +++ b/testing/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_testonly = True, diff --git a/testing/src/main/java/dev/cel/testing/BUILD.bazel b/testing/src/main/java/dev/cel/testing/BUILD.bazel index f4054402b..bbe1ab489 100644 --- a/testing/src/main/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/main/java/dev/cel/testing/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_testonly = True, diff --git a/testing/src/test/java/dev/cel/testing/BUILD.bazel b/testing/src/test/java/dev/cel/testing/BUILD.bazel index 90cf73e3a..8fe831bb2 100644 --- a/testing/src/test/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/test/java/dev/cel/testing/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = [ diff --git a/validator/BUILD.bazel b/validator/BUILD.bazel index a5afcbd23..fe40153fc 100644 --- a/validator/BUILD.bazel +++ b/validator/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], diff --git a/validator/src/main/java/dev/cel/validator/BUILD.bazel b/validator/src/main/java/dev/cel/validator/BUILD.bazel index ed4ecc570..c6cad795b 100644 --- a/validator/src/main/java/dev/cel/validator/BUILD.bazel +++ b/validator/src/main/java/dev/cel/validator/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel index 3362f14be..d166cfa76 100644 --- a/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = [ diff --git a/validator/src/test/java/dev/cel/validator/BUILD.bazel b/validator/src/test/java/dev/cel/validator/BUILD.bazel index f6f94f625..36991a863 100644 --- a/validator/src/test/java/dev/cel/validator/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel index 2383801bc..76f4de78a 100644 --- a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:defs.bzl", "java_library") load("//:testing.bzl", "junit4_test_suites") package(default_applicable_licenses = ["//:license"]) diff --git a/validator/validators/BUILD.bazel b/validator/validators/BUILD.bazel index a34f03049..b5498d682 100644 --- a/validator/validators/BUILD.bazel +++ b/validator/validators/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_java//java:defs.bzl", "java_library") + package( default_applicable_licenses = ["//:license"], default_visibility = ["//visibility:public"], From d80531c2a9d17876a16b433807f9f1c549d7b813 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Sun, 29 Sep 2024 23:42:11 -0700 Subject: [PATCH 13/17] Make CelAbstractSyntaxTree and its dependents an AutoValue class to allow for equality checks PiperOrigin-RevId: 680437295 --- .../dev/cel/common/CelAbstractSyntaxTree.java | 51 +++++-------- .../main/java/dev/cel/common/CelSource.java | 75 +++++++++---------- .../common/internal/BasicCodePointArray.java | 45 +++++------ .../common/internal/CelCodePointArray.java | 9 ++- .../common/internal/Latin1CodePointArray.java | 44 +++++------ .../internal/SupplementalCodePointArray.java | 45 +++++------ .../src/test/java/dev/cel/common/BUILD.bazel | 4 + .../cel/common/CelAbstractSyntaxTreeTest.java | 28 +++++++ 8 files changed, 146 insertions(+), 155 deletions(-) diff --git a/common/src/main/java/dev/cel/common/CelAbstractSyntaxTree.java b/common/src/main/java/dev/cel/common/CelAbstractSyntaxTree.java index 3d55bde38..59023adfd 100644 --- a/common/src/main/java/dev/cel/common/CelAbstractSyntaxTree.java +++ b/common/src/main/java/dev/cel/common/CelAbstractSyntaxTree.java @@ -15,6 +15,7 @@ package dev.cel.common; import dev.cel.expr.Type; +import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.errorprone.annotations.Immutable; @@ -36,16 +37,17 @@ *

Note: Use {@link CelProtoAbstractSyntaxTree} if you need access to the protobuf equivalent * ASTs, such as ParsedExpr and CheckedExpr from syntax.proto or checked.proto. */ +@AutoValue @Immutable -public final class CelAbstractSyntaxTree { +public abstract class CelAbstractSyntaxTree { - private final CelSource celSource; + abstract CelSource celSource(); - private final CelExpr celExpr; + abstract CelExpr celExpr(); - private final ImmutableMap references; + abstract ImmutableMap references(); - private final ImmutableMap types; + abstract ImmutableMap types(); /** * Constructs a new instance of CelAbstractSyntaxTree that represent a parsed expression. @@ -54,7 +56,8 @@ public final class CelAbstractSyntaxTree { * validating or optimizing an AST. */ public static CelAbstractSyntaxTree newParsedAst(CelExpr celExpr, CelSource celSource) { - return new CelAbstractSyntaxTree(celExpr, celSource); + return new AutoValue_CelAbstractSyntaxTree( + celSource, celExpr, ImmutableMap.of(), ImmutableMap.of()); } /** @@ -69,32 +72,18 @@ public static CelAbstractSyntaxTree newCheckedAst( CelSource celSource, Map references, Map types) { - return new CelAbstractSyntaxTree(celExpr, celSource, references, types); - } - - private CelAbstractSyntaxTree(CelExpr celExpr, CelSource celSource) { - this(celExpr, celSource, ImmutableMap.of(), ImmutableMap.of()); - } - - private CelAbstractSyntaxTree( - CelExpr celExpr, - CelSource celSource, - Map references, - Map types) { - this.celExpr = celExpr; - this.celSource = celSource; - this.references = ImmutableMap.copyOf(references); - this.types = ImmutableMap.copyOf(types); + return new AutoValue_CelAbstractSyntaxTree( + celSource, celExpr, ImmutableMap.copyOf(references), ImmutableMap.copyOf(types)); } /** Returns the underlying {@link CelExpr} representation of the abstract syntax tree. */ public CelExpr getExpr() { - return celExpr; + return celExpr(); } /** Tests whether the underlying abstract syntax tree has been type checked or not. */ public boolean isChecked() { - return !types.isEmpty(); + return !types().isEmpty(); } /** @@ -117,23 +106,23 @@ public Type getProtoResultType() { * Returns the {@link CelSource} that was used during construction of the abstract syntax tree. */ public CelSource getSource() { - return celSource; + return celSource(); } public Optional getType(long exprId) { - return Optional.ofNullable(types.get(exprId)); + return Optional.ofNullable(types().get(exprId)); } public ImmutableMap getTypeMap() { - return types; + return types(); } public Optional getReference(long exprId) { - return Optional.ofNullable(references.get(exprId)); + return Optional.ofNullable(references().get(exprId)); } public ImmutableMap getReferenceMap() { - return references; + return references(); } public CelReference getReferenceOrThrow(long exprId) { @@ -142,12 +131,12 @@ public CelReference getReferenceOrThrow(long exprId) { } Optional findEnumValue(long exprId) { - CelReference ref = references.get(exprId); + CelReference ref = references().get(exprId); return ref != null ? ref.value() : Optional.empty(); } Optional> findOverloadIDs(long exprId) { - CelReference ref = references.get(exprId); + CelReference ref = references().get(exprId); return ref != null && !ref.value().isPresent() ? Optional.of(ref.overloadIds()) : Optional.empty(); diff --git a/common/src/main/java/dev/cel/common/CelSource.java b/common/src/main/java/dev/cel/common/CelSource.java index 1c8d4dbe8..2678a0a2c 100644 --- a/common/src/main/java/dev/cel/common/CelSource.java +++ b/common/src/main/java/dev/cel/common/CelSource.java @@ -36,37 +36,34 @@ /** Represents the source content of an expression and related metadata. */ @Immutable -public final class CelSource implements Source { - - private final CelCodePointArray codePoints; - private final String description; - private final ImmutableList lineOffsets; - private final ImmutableMap positions; - private final ImmutableMap macroCalls; - private final ImmutableSet extensions; - - private CelSource(Builder builder) { - this.codePoints = checkNotNull(builder.codePoints); - this.description = checkNotNull(builder.description); - this.positions = checkNotNull(ImmutableMap.copyOf(builder.positions)); - this.lineOffsets = checkNotNull(ImmutableList.copyOf(builder.lineOffsets)); - this.macroCalls = checkNotNull(ImmutableMap.copyOf(builder.macroCalls)); - this.extensions = checkNotNull(builder.extensions.build()); - } +@AutoValue +public abstract class CelSource implements Source { + + abstract CelCodePointArray codePoints(); + + abstract String description(); + + abstract ImmutableList lineOffsets(); + + abstract ImmutableMap positions(); + + abstract ImmutableMap macroCalls(); + + abstract ImmutableSet extensions(); @Override public CelCodePointArray getContent() { - return codePoints; + return codePoints(); } @Override public String getDescription() { - return description; + return description(); } @Override public ImmutableMap getPositionsMap() { - return positions; + return positions(); } /** @@ -76,15 +73,15 @@ public ImmutableMap getPositionsMap() { *

NOTE: The indices point to the index just after the '\n' not the index of '\n' itself. */ public ImmutableList getLineOffsets() { - return lineOffsets; + return lineOffsets(); } public ImmutableMap getMacroCalls() { - return macroCalls; + return macroCalls(); } public ImmutableSet getExtensions() { - return extensions; + return extensions(); } /** See {@link #getLocationOffset(int, int)}. */ @@ -101,19 +98,19 @@ public Optional getLocationOffset(CelSourceLocation location) { * @param column the column number starting from 0 */ public Optional getLocationOffset(int line, int column) { - return getLocationOffsetImpl(lineOffsets, line, column); + return getLocationOffsetImpl(lineOffsets(), line, column); } /** * Get the line and column in the source expression text for the given code point {@code offset}. */ public Optional getOffsetLocation(int offset) { - return CelSourceHelper.getOffsetLocation(codePoints, offset); + return CelSourceHelper.getOffsetLocation(codePoints(), offset); } @Override public Optional getSnippet(int line) { - return CelSourceHelper.getSnippet(codePoints, line); + return CelSourceHelper.getSnippet(codePoints(), line); } /** @@ -136,11 +133,11 @@ private static Optional getLocationOffsetImpl( } public Builder toBuilder() { - return new Builder(codePoints, lineOffsets) - .setDescription(description) - .addPositionsMap(positions) - .addAllExtensions(extensions) - .addAllMacroCalls(macroCalls); + return new Builder(codePoints(), lineOffsets()) + .setDescription(description()) + .addPositionsMap(positions()) + .addAllExtensions(extensions()) + .addAllMacroCalls(macroCalls()); } public static Builder newBuilder() { @@ -236,12 +233,6 @@ public Builder addAllMacroCalls(Map macroCalls) { return this; } - @CanIgnoreReturnValue - public Builder clearMacroCall(long exprId) { - this.macroCalls.remove(exprId); - return this; - } - public ImmutableSet getExtensions() { return extensions.build(); } @@ -308,7 +299,13 @@ public boolean containsMacroCalls(long exprId) { @CheckReturnValue public CelSource build() { - return new CelSource(this); + return new AutoValue_CelSource( + codePoints, + description, + ImmutableList.copyOf(lineOffsets), + ImmutableMap.copyOf(positions), + ImmutableMap.copyOf(macroCalls), + extensions.build()); } } @@ -369,7 +366,7 @@ public enum Component { /** Type checker. Checks that references in an AST are defined and types agree. */ COMPONENT_TYPE_CHECKER, /** Runtime. Evaluates a parsed and optionally checked CEL AST against a context. */ - COMPONENT_RUNTIME; + COMPONENT_RUNTIME } @CheckReturnValue diff --git a/common/src/main/java/dev/cel/common/internal/BasicCodePointArray.java b/common/src/main/java/dev/cel/common/internal/BasicCodePointArray.java index 251f09d61..a240df763 100644 --- a/common/src/main/java/dev/cel/common/internal/BasicCodePointArray.java +++ b/common/src/main/java/dev/cel/common/internal/BasicCodePointArray.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkPositionIndexes; +import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; @@ -32,50 +33,40 @@ @Immutable @VisibleForTesting @Internal -public final class BasicCodePointArray extends CelCodePointArray { +@AutoValue +@AutoValue.CopyAnnotations +@SuppressWarnings("Immutable") // char[] is not exposed externally, thus cannot be mutated. +public abstract class BasicCodePointArray extends CelCodePointArray { - @SuppressWarnings("Immutable") - private final char[] codePoints; + @SuppressWarnings("AutoValueImmutableFields") + abstract char[] codePoints(); - private final int offset; - private final int size; - private final ImmutableList lineOffsets; + abstract int offset(); - BasicCodePointArray(char[] codePoints, int size, ImmutableList lineOffsets) { - this(codePoints, 0, lineOffsets, size); + static BasicCodePointArray create( + char[] codePoints, int size, ImmutableList lineOffsets) { + return create(codePoints, 0, lineOffsets, size); } - BasicCodePointArray(char[] codePoints, int offset, ImmutableList lineOffsets, int size) { - this.codePoints = checkNotNull(codePoints); - this.offset = offset; - this.size = size; - this.lineOffsets = lineOffsets; + static BasicCodePointArray create( + char[] codePoints, int offset, ImmutableList lineOffsets, int size) { + return new AutoValue_BasicCodePointArray(size, checkNotNull(lineOffsets), codePoints, offset); } @Override public BasicCodePointArray slice(int i, int j) { checkPositionIndexes(i, j, size()); - return new BasicCodePointArray(codePoints, offset + i, lineOffsets, j - i); + return create(codePoints(), offset() + i, lineOffsets(), j - i); } @Override public int get(int index) { checkElementIndex(index, size()); - return codePoints[offset + index] & 0xffff; + return codePoints()[offset() + index] & 0xffff; } @Override - public int size() { - return size; - } - - @Override - public ImmutableList lineOffsets() { - return lineOffsets; - } - - @Override - public String toString() { - return new String(codePoints, offset, size); + public final String toString() { + return new String(codePoints(), offset(), size()); } } diff --git a/common/src/main/java/dev/cel/common/internal/CelCodePointArray.java b/common/src/main/java/dev/cel/common/internal/CelCodePointArray.java index 94d94b5dc..1f3124c93 100644 --- a/common/src/main/java/dev/cel/common/internal/CelCodePointArray.java +++ b/common/src/main/java/dev/cel/common/internal/CelCodePointArray.java @@ -101,11 +101,12 @@ public static CelCodePointArray fromString(String text) { intArray[intIndex++] = codePoint; } - return new SupplementalCodePointArray( + return SupplementalCodePointArray.create( intArray, intIndex, lineOffsetContext.buildLineOffsets()); } - return new BasicCodePointArray(charArray, charIndex, lineOffsetContext.buildLineOffsets()); + return BasicCodePointArray.create( + charArray, charIndex, lineOffsetContext.buildLineOffsets()); } int[] intArray = new int[text.length()]; int intIndex = 0; @@ -120,11 +121,11 @@ public static CelCodePointArray fromString(String text) { intArray[intIndex++] = codePoint; } - return new SupplementalCodePointArray( + return SupplementalCodePointArray.create( intArray, intIndex, lineOffsetContext.buildLineOffsets()); } - return new Latin1CodePointArray(byteArray, byteIndex, lineOffsetContext.buildLineOffsets()); + return Latin1CodePointArray.create(byteArray, byteIndex, lineOffsetContext.buildLineOffsets()); } private static class LineOffsetContext { diff --git a/common/src/main/java/dev/cel/common/internal/Latin1CodePointArray.java b/common/src/main/java/dev/cel/common/internal/Latin1CodePointArray.java index a06448aba..9e54c3a6c 100644 --- a/common/src/main/java/dev/cel/common/internal/Latin1CodePointArray.java +++ b/common/src/main/java/dev/cel/common/internal/Latin1CodePointArray.java @@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkPositionIndexes; import static java.nio.charset.StandardCharsets.ISO_8859_1; +import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; @@ -32,51 +33,40 @@ @Immutable @VisibleForTesting @Internal -public final class Latin1CodePointArray extends CelCodePointArray { +@AutoValue +@AutoValue.CopyAnnotations +@SuppressWarnings("Immutable") // byte[] is not exposed externally, thus cannot be mutated. +public abstract class Latin1CodePointArray extends CelCodePointArray { - @SuppressWarnings("Immutable") - private final byte[] codePoints; + @SuppressWarnings("AutoValueImmutableFields") + abstract byte[] codePoints(); - private final int offset; - private final int size; - private final ImmutableList lineOffsets; + abstract int offset(); - Latin1CodePointArray(byte[] codePoints, int size, ImmutableList lineOffsets) { - this(codePoints, 0, lineOffsets, size); + static Latin1CodePointArray create( + byte[] codePoints, int size, ImmutableList lineOffsets) { + return create(codePoints, 0, lineOffsets, size); } - Latin1CodePointArray( + static Latin1CodePointArray create( byte[] codePoints, int offset, ImmutableList lineOffsets, int size) { - this.codePoints = checkNotNull(codePoints); - this.offset = offset; - this.size = size; - this.lineOffsets = lineOffsets; + return new AutoValue_Latin1CodePointArray(size, checkNotNull(lineOffsets), codePoints, offset); } @Override public Latin1CodePointArray slice(int i, int j) { checkPositionIndexes(i, j, size()); - return new Latin1CodePointArray(codePoints, offset + i, lineOffsets, j - i); + return create(codePoints(), offset() + i, lineOffsets(), j - i); } @Override public int get(int index) { checkElementIndex(index, size()); - return Byte.toUnsignedInt(codePoints[offset + index]); + return Byte.toUnsignedInt(codePoints()[offset() + index]); } @Override - public int size() { - return size; - } - - @Override - public ImmutableList lineOffsets() { - return lineOffsets; - } - - @Override - public String toString() { - return new String(codePoints, offset, size, ISO_8859_1); + public final String toString() { + return new String(codePoints(), offset(), size(), ISO_8859_1); } } diff --git a/common/src/main/java/dev/cel/common/internal/SupplementalCodePointArray.java b/common/src/main/java/dev/cel/common/internal/SupplementalCodePointArray.java index 30f2fce27..dc3cb10a4 100644 --- a/common/src/main/java/dev/cel/common/internal/SupplementalCodePointArray.java +++ b/common/src/main/java/dev/cel/common/internal/SupplementalCodePointArray.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkPositionIndexes; +import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; @@ -32,51 +33,41 @@ @Immutable @VisibleForTesting @Internal -public final class SupplementalCodePointArray extends CelCodePointArray { +@AutoValue +@AutoValue.CopyAnnotations +@SuppressWarnings("Immutable") // int[] is not exposed externally, thus cannot be mutated. +public abstract class SupplementalCodePointArray extends CelCodePointArray { - @SuppressWarnings("Immutable") - private final int[] codePoints; + @SuppressWarnings("AutoValueImmutableFields") + abstract int[] codePoints(); - private final int offset; - private final int size; - private final ImmutableList lineOffsets; + abstract int offset(); - SupplementalCodePointArray(int[] codePoints, int size, ImmutableList lineOffsets) { - this(codePoints, 0, lineOffsets, size); + static SupplementalCodePointArray create( + int[] codePoints, int size, ImmutableList lineOffsets) { + return create(codePoints, 0, lineOffsets, size); } - SupplementalCodePointArray( + static SupplementalCodePointArray create( int[] codePoints, int offset, ImmutableList lineOffsets, int size) { - this.codePoints = checkNotNull(codePoints); - this.offset = offset; - this.size = size; - this.lineOffsets = lineOffsets; + return new AutoValue_SupplementalCodePointArray( + size, checkNotNull(lineOffsets), codePoints, offset); } @Override public SupplementalCodePointArray slice(int i, int j) { checkPositionIndexes(i, j, size()); - return new SupplementalCodePointArray(codePoints, offset + i, lineOffsets, j - i); + return create(codePoints(), offset() + i, lineOffsets(), j - i); } @Override public int get(int index) { checkElementIndex(index, size()); - return codePoints[offset + index]; + return codePoints()[offset() + index]; } @Override - public int size() { - return size; - } - - @Override - public ImmutableList lineOffsets() { - return lineOffsets; - } - - @Override - public String toString() { - return new String(codePoints, offset, size); + public final String toString() { + return new String(codePoints(), offset(), size()); } } diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index 0f201e480..b277d5c4d 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -24,11 +24,15 @@ java_library( "//common/types", "//common/types:cel_types", "//common/types:cel_v1alpha1_types", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_guava_guava_testlib", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", diff --git a/common/src/test/java/dev/cel/common/CelAbstractSyntaxTreeTest.java b/common/src/test/java/dev/cel/common/CelAbstractSyntaxTreeTest.java index 48e28894a..2cdf81380 100644 --- a/common/src/test/java/dev/cel/common/CelAbstractSyntaxTreeTest.java +++ b/common/src/test/java/dev/cel/common/CelAbstractSyntaxTreeTest.java @@ -26,10 +26,14 @@ import dev.cel.expr.SourceInfo; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.testing.EqualsTester; import dev.cel.common.ast.CelConstant; import dev.cel.common.ast.CelExpr; import dev.cel.common.types.CelTypes; import dev.cel.common.types.SimpleType; +import dev.cel.compiler.CelCompiler; +import dev.cel.compiler.CelCompilerFactory; +import dev.cel.parser.CelStandardMacro; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -146,6 +150,30 @@ public void getSource_hasDescriptionEqualToSourceLocation() { assertThat(PARSED_AST.getSource().getDescription()).isEqualTo("test/location.cel"); } + @Test + public void equalityTest() throws Exception { + CelCompiler celCompiler = + CelCompilerFactory.standardCelCompilerBuilder() + .setStandardMacros(CelStandardMacro.STANDARD_MACROS) + .setOptions(CelOptions.current().populateMacroCalls(true).build()) + .build(); + new EqualsTester() + .addEqualityGroup( + CelAbstractSyntaxTree.newParsedAst( + CelExpr.newBuilder().build(), CelSource.newBuilder().build())) + .addEqualityGroup( + celCompiler.compile("'foo'").getAst(), celCompiler.compile("'foo'").getAst()) // ASCII + .addEqualityGroup( + celCompiler.compile("'가나다'").getAst(), celCompiler.compile("'가나다'").getAst()) // BMP + .addEqualityGroup( + celCompiler.compile("'😦😁😑'").getAst(), + celCompiler.compile("'😦😁😑'").getAst()) // SMP + .addEqualityGroup( + celCompiler.compile("[1,2,3].exists(x, x > 0)").getAst(), + celCompiler.compile("[1,2,3].exists(x, x > 0)").getAst()) + .testEquals(); + } + @Test public void parsedExpression_createAst() { CelExpr celExpr = CelExpr.newBuilder().setId(1).setConstant(CelConstant.ofValue(2)).build(); From 2f6f308205c14fbda9607bb26a21b01a5cb96a80 Mon Sep 17 00:00:00 2001 From: Tristan Swadell Date: Sat, 5 Oct 2024 17:30:22 -0700 Subject: [PATCH 14/17] Ensure empty YAML inputs yield checked exceptions PiperOrigin-RevId: 682755056 --- policy/src/main/java/dev/cel/policy/BUILD.bazel | 1 - .../java/dev/cel/policy/CelPolicyYamlConfigParser.java | 8 +++++++- .../main/java/dev/cel/policy/CelPolicyYamlParser.java | 9 ++++++++- policy/src/main/java/dev/cel/policy/YamlHelper.java | 6 +++--- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/policy/src/main/java/dev/cel/policy/BUILD.bazel b/policy/src/main/java/dev/cel/policy/BUILD.bazel index 546853bb8..bc96866b2 100644 --- a/policy/src/main/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/main/java/dev/cel/policy/BUILD.bazel @@ -117,7 +117,6 @@ java_library( ":value_string", ":yaml_helper", "//common:compiler_common", - "//common:source_location", "//common/internal", "@maven//:com_google_guava_guava", "@maven//:org_yaml_snakeyaml", diff --git a/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java b/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java index 6d84c8fcb..204125b71 100644 --- a/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java +++ b/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java @@ -338,7 +338,13 @@ private CelPolicyConfig parseYaml(String source, String description) throws CelPolicyValidationException { Node node; try { - node = parseYamlSource(source); + Node yamlNode = + parseYamlSource(source) + .orElseThrow( + () -> + new CelPolicyValidationException( + String.format("YAML document is malformed: %s", source))); + node = yamlNode; } catch (RuntimeException e) { throw new CelPolicyValidationException("YAML document is malformed: " + e.getMessage(), e); } diff --git a/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java b/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java index 318f44fbc..841dadf08 100644 --- a/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java +++ b/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java @@ -66,8 +66,15 @@ private static class ParserImpl implements PolicyParserContext { private CelPolicy parseYaml() throws CelPolicyValidationException { Node node; + String policySourceString = policySource.getContent().toString(); try { - node = YamlHelper.parseYamlSource(policySource.getContent().toString()); + Node yamlNode = + YamlHelper.parseYamlSource(policySourceString) + .orElseThrow( + () -> + new CelPolicyValidationException( + String.format("YAML document is malformed: %s", policySourceString))); + node = yamlNode; } catch (RuntimeException e) { throw new CelPolicyValidationException("YAML document is malformed: " + e.getMessage(), e); } diff --git a/policy/src/main/java/dev/cel/policy/YamlHelper.java b/policy/src/main/java/dev/cel/policy/YamlHelper.java index c289c73f6..2642cac44 100644 --- a/policy/src/main/java/dev/cel/policy/YamlHelper.java +++ b/policy/src/main/java/dev/cel/policy/YamlHelper.java @@ -20,6 +20,7 @@ import com.google.common.base.Joiner; import java.io.StringReader; import java.util.List; +import java.util.Optional; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; @@ -68,10 +69,9 @@ public static boolean assertYamlType( return false; } - static Node parseYamlSource(String policyContent) { + static Optional parseYamlSource(String policyContent) { Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())); - - return yaml.compose(new StringReader(policyContent)); + return Optional.ofNullable(yaml.compose(new StringReader(policyContent))); } static boolean assertRequiredFields( From 0da0145ee8cbd074d4b62a01dc9070137e1bfc5d Mon Sep 17 00:00:00 2001 From: Tristan Swadell Date: Sun, 6 Oct 2024 00:01:55 -0700 Subject: [PATCH 15/17] Additional test case and error message refinement PiperOrigin-RevId: 682818292 --- .../main/java/dev/cel/policy/CelPolicyYamlConfigParser.java | 2 +- policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java | 3 ++- .../java/dev/cel/policy/CelPolicyYamlConfigParserTest.java | 5 +++++ .../test/java/dev/cel/policy/CelPolicyYamlParserTest.java | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java b/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java index 204125b71..b37952fb9 100644 --- a/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java +++ b/policy/src/main/java/dev/cel/policy/CelPolicyYamlConfigParser.java @@ -343,7 +343,7 @@ private CelPolicyConfig parseYaml(String source, String description) .orElseThrow( () -> new CelPolicyValidationException( - String.format("YAML document is malformed: %s", source))); + String.format("YAML document empty or malformed: %s", source))); node = yamlNode; } catch (RuntimeException e) { throw new CelPolicyValidationException("YAML document is malformed: " + e.getMessage(), e); diff --git a/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java b/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java index 841dadf08..5e527e73f 100644 --- a/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java +++ b/policy/src/main/java/dev/cel/policy/CelPolicyYamlParser.java @@ -73,7 +73,8 @@ private CelPolicy parseYaml() throws CelPolicyValidationException { .orElseThrow( () -> new CelPolicyValidationException( - String.format("YAML document is malformed: %s", policySourceString))); + String.format( + "YAML document empty or malformed: %s", policySourceString))); node = yamlNode; } catch (RuntimeException e) { throw new CelPolicyValidationException("YAML document is malformed: " + e.getMessage(), e); diff --git a/policy/src/test/java/dev/cel/policy/CelPolicyYamlConfigParserTest.java b/policy/src/test/java/dev/cel/policy/CelPolicyYamlConfigParserTest.java index 630bfc76e..f4c0f2f1c 100644 --- a/policy/src/test/java/dev/cel/policy/CelPolicyYamlConfigParserTest.java +++ b/policy/src/test/java/dev/cel/policy/CelPolicyYamlConfigParserTest.java @@ -43,6 +43,11 @@ public final class CelPolicyYamlConfigParserTest { private static final CelPolicyConfigParser POLICY_CONFIG_PARSER = CelPolicyParserFactory.newYamlConfigParser(); + @Test + public void config_setEmpty() throws Exception { + assertThrows(CelPolicyValidationException.class, () -> POLICY_CONFIG_PARSER.parse("")); + } + @Test public void config_setBasicProperties() throws Exception { String yamlConfig = "name: hello\n" + "description: empty\n" + "container: pb.pkg\n"; diff --git a/policy/src/test/java/dev/cel/policy/CelPolicyYamlParserTest.java b/policy/src/test/java/dev/cel/policy/CelPolicyYamlParserTest.java index c648d3ac3..a62b7255e 100644 --- a/policy/src/test/java/dev/cel/policy/CelPolicyYamlParserTest.java +++ b/policy/src/test/java/dev/cel/policy/CelPolicyYamlParserTest.java @@ -43,6 +43,11 @@ public void parseYamlPolicy_success(@TestParameter TestYamlPolicy yamlPolicy) th assertThat(policy.policySource().getDescription()).isEqualTo(description); } + @Test + public void parser_setEmpty() throws Exception { + assertThrows(CelPolicyValidationException.class, () -> POLICY_PARSER.parse("", "")); + } + @Test public void parseYamlPolicy_withExplanation() throws Exception { String policySource = From 23354f4807fb827c2357b235fa3480873b5996d8 Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Thu, 10 Oct 2024 10:21:28 -0700 Subject: [PATCH 16/17] Fix CEL-Java to be fully protobuf v4 compatible Fixes https://github.com/google/cel-java/issues/462 PiperOrigin-RevId: 684490250 --- .bazelrc | 3 +++ WORKSPACE | 26 +++++++++---------- .../src/main/java/dev/cel/bundle/BUILD.bazel | 2 +- .../src/test/java/dev/cel/bundle/BUILD.bazel | 2 +- .../src/main/java/dev/cel/checker/BUILD.bazel | 10 +++---- .../src/test/java/dev/cel/checker/BUILD.bazel | 2 +- codelab/src/main/codelab/BUILD.bazel | 2 +- .../src/main/codelab/solutions/BUILD.bazel | 2 +- codelab/src/test/codelab/BUILD.bazel | 6 ++--- .../src/test/codelab/solutions/BUILD.bazel | 6 ++--- .../src/main/java/dev/cel/common/BUILD.bazel | 4 +-- .../main/java/dev/cel/common/ast/BUILD.bazel | 4 +-- .../java/dev/cel/common/internal/BUILD.bazel | 18 ++++++------- .../java/dev/cel/common/types/BUILD.bazel | 6 ++--- .../java/dev/cel/common/values/BUILD.bazel | 4 +-- .../src/test/java/dev/cel/common/BUILD.bazel | 2 +- .../test/java/dev/cel/common/ast/BUILD.bazel | 2 +- .../java/dev/cel/common/internal/BUILD.bazel | 2 +- .../java/dev/cel/common/values/BUILD.bazel | 2 +- .../main/java/dev/cel/compiler/BUILD.bazel | 4 +-- .../test/java/dev/cel/conformance/BUILD.bazel | 2 +- .../main/java/dev/cel/extensions/BUILD.bazel | 4 +-- .../test/java/dev/cel/extensions/BUILD.bazel | 2 +- .../src/main/java/dev/cel/parser/BUILD.bazel | 2 +- .../src/test/java/dev/cel/parser/BUILD.bazel | 2 +- .../src/main/java/dev/cel/runtime/BUILD.bazel | 8 +++--- .../src/test/java/dev/cel/runtime/BUILD.bazel | 2 +- .../src/main/java/dev/cel/testing/BUILD.bazel | 4 +-- .../dev/cel/validator/validators/BUILD.bazel | 4 +-- .../dev/cel/validator/validators/BUILD.bazel | 2 +- 30 files changed, 72 insertions(+), 69 deletions(-) create mode 100644 .bazelrc diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 000000000..0e8299f1d --- /dev/null +++ b/.bazelrc @@ -0,0 +1,3 @@ +build --cxxopt=-std=c++14 +build --host_cxxopt=-std=c++14 +common --noenable_bzlmod diff --git a/WORKSPACE b/WORKSPACE index 4dc16ce61..97ecd141a 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -73,20 +73,20 @@ maven_install( "com.google.auto.value:auto-value:1.11.0", "com.google.auto.value:auto-value-annotations:1.11.0", "com.google.code.findbugs:annotations:3.0.1", - "com.google.errorprone:error_prone_annotations:2.30.0", - "com.google.guava:guava:33.3.0-jre", - "com.google.guava:guava-testlib:33.3.0-jre", - "com.google.protobuf:protobuf-java:4.28.0", - "com.google.protobuf:protobuf-java-util:4.28.0", + "com.google.errorprone:error_prone_annotations:2.33.0", + "com.google.guava:guava:33.3.1-jre", + "com.google.guava:guava-testlib:33.3.1-jre", + "com.google.protobuf:protobuf-java:4.28.2", + "com.google.protobuf:protobuf-java-util:4.28.2", "com.google.re2j:re2j:1.7", - "com.google.testparameterinjector:test-parameter-injector:1.15", - "com.google.truth.extensions:truth-java8-extension:1.4.2", - "com.google.truth.extensions:truth-proto-extension:1.4.2", - "com.google.truth:truth:1.4.2", + "com.google.testparameterinjector:test-parameter-injector:1.18", + "com.google.truth.extensions:truth-java8-extension:1.4.4", + "com.google.truth.extensions:truth-proto-extension:1.4.4", + "com.google.truth:truth:1.4.4", "org.antlr:antlr4-runtime:" + ANTLR4_VERSION, "org.jspecify:jspecify:1.0.0", "org.threeten:threeten-extra:1.8.0", - "org.yaml:snakeyaml:2.2", + "org.yaml:snakeyaml:2.3", ], repositories = [ "https://maven.google.com", @@ -96,9 +96,9 @@ maven_install( http_archive( name = "com_google_protobuf", - sha256 = "13e7749c30bc24af6ee93e092422f9dc08491c7097efa69461f88eb5f61805ce", - strip_prefix = "protobuf-28.0", - urls = ["https://github.com/protocolbuffers/protobuf/archive/v28.0.tar.gz"], + sha256 = "b2340aa47faf7ef10a0328190319d3f3bee1b24f426d4ce8f4253b6f27ce16db", + strip_prefix = "protobuf-28.2", + urls = ["https://github.com/protocolbuffers/protobuf/archive/v28.2.tar.gz"], ) # Required by com_google_protobuf diff --git a/bundle/src/main/java/dev/cel/bundle/BUILD.bazel b/bundle/src/main/java/dev/cel/bundle/BUILD.bazel index 5ef5123c1..b6f170ee4 100644 --- a/bundle/src/main/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/main/java/dev/cel/bundle/BUILD.bazel @@ -39,10 +39,10 @@ java_library( "//parser:macro", "//parser:parser_builder", "//runtime", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_code_findbugs_annotations", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel index 8b191c25a..be643cce7 100644 --- a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel @@ -33,7 +33,6 @@ java_library( "//parser:macro", "//runtime", "//runtime:unknown_attributes", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", @@ -41,6 +40,7 @@ java_library( "@com_google_googleapis//google/type:type_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", diff --git a/checker/src/main/java/dev/cel/checker/BUILD.bazel b/checker/src/main/java/dev/cel/checker/BUILD.bazel index 3d209db4e..05671f426 100644 --- a/checker/src/main/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/main/java/dev/cel/checker/BUILD.bazel @@ -52,10 +52,10 @@ java_library( "//common/types", "//common/types:cel_types", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) @@ -84,10 +84,10 @@ java_library( "//common/types:cel_types", "//common/types:message_type_provider", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -103,9 +103,9 @@ java_library( "//common:compiler_common", "//common:options", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -116,9 +116,9 @@ java_library( ], deps = [ "//:auto_value", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -184,10 +184,10 @@ java_library( "//common/types:type_providers", "//parser:macro", "//parser:operator", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) diff --git a/checker/src/test/java/dev/cel/checker/BUILD.bazel b/checker/src/test/java/dev/cel/checker/BUILD.bazel index 096207cc5..e3e410429 100644 --- a/checker/src/test/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/test/java/dev/cel/checker/BUILD.bazel @@ -11,7 +11,7 @@ java_library( srcs = glob(["*Test.java"]), resources = ["//checker/src/test/resources:baselines"], deps = [ - "@@protobuf~//java/core", + "@maven//:com_google_protobuf_protobuf_java", # "//java/com/google/testing/testsize:annotations", "//:auto_value", "//checker", diff --git a/codelab/src/main/codelab/BUILD.bazel b/codelab/src/main/codelab/BUILD.bazel index 2b3eb0247..adeb3b5dd 100644 --- a/codelab/src/main/codelab/BUILD.bazel +++ b/codelab/src/main/codelab/BUILD.bazel @@ -35,9 +35,9 @@ java_library( "//validator/validators:homogeneous_literal", # unuseddeps: keep "//validator/validators:regex", # unuseddeps: keep "//validator/validators:timestamp", # unuseddeps: keep - "@@protobuf~//java/core", # unuseddeps: keep "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", # unuseddeps: keep "@maven//:com_google_guava_guava", # unuseddeps: keep + "@maven//:com_google_protobuf_protobuf_java", # unuseddeps: keep "@maven//:com_google_protobuf_protobuf_java_util", # unuseddeps: keep ], ) diff --git a/codelab/src/main/codelab/solutions/BUILD.bazel b/codelab/src/main/codelab/solutions/BUILD.bazel index 2060e3e8c..458fbe0b4 100644 --- a/codelab/src/main/codelab/solutions/BUILD.bazel +++ b/codelab/src/main/codelab/solutions/BUILD.bazel @@ -35,9 +35,9 @@ java_library( "//validator/validators:homogeneous_literal", "//validator/validators:regex", "//validator/validators:timestamp", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", ], ) diff --git a/codelab/src/test/codelab/BUILD.bazel b/codelab/src/test/codelab/BUILD.bazel index 1b39618d0..0cfccfcaa 100644 --- a/codelab/src/test/codelab/BUILD.bazel +++ b/codelab/src/test/codelab/BUILD.bazel @@ -29,9 +29,9 @@ java_test( "//codelab", "//common", "//common/types", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], @@ -60,9 +60,9 @@ java_test( "//:java_truth", "//codelab", "//common", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], @@ -93,9 +93,9 @@ java_test( "//:java_truth", "//codelab", "//common", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", diff --git a/codelab/src/test/codelab/solutions/BUILD.bazel b/codelab/src/test/codelab/solutions/BUILD.bazel index 6438f8ee2..09e89dc51 100644 --- a/codelab/src/test/codelab/solutions/BUILD.bazel +++ b/codelab/src/test/codelab/solutions/BUILD.bazel @@ -27,9 +27,9 @@ java_test( "//codelab:solutions", "//common", "//common/types", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], @@ -56,9 +56,9 @@ java_test( "//:java_truth", "//codelab:solutions", "//common", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], @@ -87,9 +87,9 @@ java_test( "//:java_truth", "//codelab:solutions", "//common", - "@@protobuf~//java/core", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", diff --git a/common/src/main/java/dev/cel/common/BUILD.bazel b/common/src/main/java/dev/cel/common/BUILD.bazel index e254ffbdd..9e4fa12fd 100644 --- a/common/src/main/java/dev/cel/common/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/BUILD.bazel @@ -60,10 +60,10 @@ java_library( "//common/types", "//common/types:cel_types", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -193,9 +193,9 @@ java_library( tags = [ ], deps = [ - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", ], ) diff --git a/common/src/main/java/dev/cel/common/ast/BUILD.bazel b/common/src/main/java/dev/cel/common/ast/BUILD.bazel index 8cc9be997..a5736cff9 100644 --- a/common/src/main/java/dev/cel/common/ast/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/ast/BUILD.bazel @@ -48,9 +48,9 @@ java_library( deps = [ "//:auto_value", "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) @@ -98,8 +98,8 @@ java_library( deps = [ ":ast", "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/common/src/main/java/dev/cel/common/internal/BUILD.bazel b/common/src/main/java/dev/cel/common/internal/BUILD.bazel index a86c9aa79..6b83b441a 100644 --- a/common/src/main/java/dev/cel/common/internal/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/internal/BUILD.bazel @@ -42,9 +42,9 @@ java_library( "//:auto_value", "//common/annotations", "//common/ast", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_antlr_antlr4_runtime", ], ) @@ -105,8 +105,8 @@ java_library( ], deps = [ "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -126,11 +126,11 @@ java_library( "//common:proto_json_adapter", "//common:runtime_exception", "//common/annotations", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_code_findbugs_annotations", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) @@ -144,9 +144,9 @@ java_library( ":dynamic_proto", "//:auto_value", "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) @@ -160,9 +160,9 @@ java_library( ], deps = [ "//:auto_value", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -184,8 +184,8 @@ java_library( ], deps = [ "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -199,7 +199,7 @@ java_library( ":default_instance_message_factory", ":proto_message_factory", "//common/annotations", - "@@protobuf~//java/core", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -210,9 +210,9 @@ java_library( ], deps = [ ":cel_descriptor_pools", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -225,9 +225,9 @@ java_library( ":well_known_proto", "//common", "//common/annotations", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/common/src/main/java/dev/cel/common/types/BUILD.bazel b/common/src/main/java/dev/cel/common/types/BUILD.bazel index a1f1a68d4..4f4029419 100644 --- a/common/src/main/java/dev/cel/common/types/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/types/BUILD.bazel @@ -75,9 +75,9 @@ java_library( ":type_providers", ":types", "//common/annotations", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -90,9 +90,9 @@ java_library( ":type_providers", ":types", "//common/annotations", - "@@protobuf~//java/core", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -134,8 +134,8 @@ java_library( "//:auto_value", "//common", "//common/internal:file_descriptor_converter", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/common/src/main/java/dev/cel/common/values/BUILD.bazel b/common/src/main/java/dev/cel/common/values/BUILD.bazel index 8f1aa06c2..c9e233108 100644 --- a/common/src/main/java/dev/cel/common/values/BUILD.bazel +++ b/common/src/main/java/dev/cel/common/values/BUILD.bazel @@ -116,9 +116,9 @@ java_library( "//common/types:cel_types", "//common/types:type_providers", "//common/values:cel_byte_string", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:org_jspecify_jspecify", ], @@ -139,7 +139,7 @@ java_library( "//common/annotations", "//common/internal:dynamic_proto", "//common/internal:proto_message_factory", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index b277d5c4d..bac8affe1 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -27,12 +27,12 @@ java_library( "//compiler", "//compiler:compiler_builder", "//parser:macro", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", diff --git a/common/src/test/java/dev/cel/common/ast/BUILD.bazel b/common/src/test/java/dev/cel/common/ast/BUILD.bazel index 5cfc4eb63..848920037 100644 --- a/common/src/test/java/dev/cel/common/ast/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/ast/BUILD.bazel @@ -29,12 +29,12 @@ java_library( "//extensions:optional_library", "//parser:macro", "//parser:operator", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], diff --git a/common/src/test/java/dev/cel/common/internal/BUILD.bazel b/common/src/test/java/dev/cel/common/internal/BUILD.bazel index 9a033b00a..d29f67a50 100644 --- a/common/src/test/java/dev/cel/common/internal/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/internal/BUILD.bazel @@ -31,11 +31,11 @@ java_library( "//common/src/test/resources:service_conflicting_name_java_proto", "//common/src/test/resources:single_file_java_proto", "//common/testing", - "@@protobuf~//java/core", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@com_google_googleapis//google/type:type_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], diff --git a/common/src/test/java/dev/cel/common/values/BUILD.bazel b/common/src/test/java/dev/cel/common/values/BUILD.bazel index 00800a01c..48e90e120 100644 --- a/common/src/test/java/dev/cel/common/values/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/values/BUILD.bazel @@ -25,10 +25,10 @@ java_library( "//common/values:cel_value_provider", "//common/values:proto_message_value", "//common/values:proto_message_value_provider", - "@@protobuf~//java/core", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", diff --git a/compiler/src/main/java/dev/cel/compiler/BUILD.bazel b/compiler/src/main/java/dev/cel/compiler/BUILD.bazel index 63a9cd4e6..22d403b6c 100644 --- a/compiler/src/main/java/dev/cel/compiler/BUILD.bazel +++ b/compiler/src/main/java/dev/cel/compiler/BUILD.bazel @@ -44,10 +44,10 @@ java_library( "//parser", "//parser:macro", "//parser:parser_builder", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -66,8 +66,8 @@ java_library( "//common/types:type_providers", "//parser:macro", "//parser:parser_builder", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/conformance/src/test/java/dev/cel/conformance/BUILD.bazel b/conformance/src/test/java/dev/cel/conformance/BUILD.bazel index f3014aca5..57a83b955 100644 --- a/conformance/src/test/java/dev/cel/conformance/BUILD.bazel +++ b/conformance/src/test/java/dev/cel/conformance/BUILD.bazel @@ -30,13 +30,13 @@ java_library( "//parser:macro", "//parser:parser_builder", "//runtime", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@cel_spec//proto/test/v1:simple_java_proto", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", ], diff --git a/extensions/src/main/java/dev/cel/extensions/BUILD.bazel b/extensions/src/main/java/dev/cel/extensions/BUILD.bazel index a3256ecca..e14421c9b 100644 --- a/extensions/src/main/java/dev/cel/extensions/BUILD.bazel +++ b/extensions/src/main/java/dev/cel/extensions/BUILD.bazel @@ -104,9 +104,9 @@ java_library( "//common/types", "//compiler:compiler_builder", "//runtime", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -127,8 +127,8 @@ java_library( "//parser:operator", "//parser:parser_builder", "//runtime", - "@@protobuf~//java/core", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel index 4ed844381..c2d435993 100644 --- a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel +++ b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel @@ -25,11 +25,11 @@ java_library( "//parser:macro", "//runtime", "//runtime:interpreter_util", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", diff --git a/parser/src/main/java/dev/cel/parser/BUILD.bazel b/parser/src/main/java/dev/cel/parser/BUILD.bazel index d86b48668..46f68b0bd 100644 --- a/parser/src/main/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/main/java/dev/cel/parser/BUILD.bazel @@ -127,6 +127,6 @@ java_library( "//common", "//common/ast", "//common/ast:cel_expr_visitor", - "@@protobuf~//java/core", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/parser/src/test/java/dev/cel/parser/BUILD.bazel b/parser/src/test/java/dev/cel/parser/BUILD.bazel index 8697baad6..7972576ff 100644 --- a/parser/src/test/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/test/java/dev/cel/parser/BUILD.bazel @@ -28,11 +28,11 @@ java_library( "//parser:unparser", "//testing:adorner", "//testing:baseline_test_case", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], diff --git a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel index 6a8c1cea0..e74420b74 100644 --- a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel @@ -57,10 +57,10 @@ java_library( "//common/internal:safe_string_formatter", "//common/types", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_re2j_re2j", "@maven//:org_jspecify_jspecify", @@ -94,11 +94,11 @@ java_library( "//common/internal:proto_message_factory", "//common/types:cel_types", "//common/types:type_providers", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_code_findbugs_annotations", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) @@ -121,9 +121,9 @@ java_library( "//common/internal:converter", "//common/internal:dynamic_proto", "//common/internal:proto_equality", - "@@protobuf~//java/core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_re2j_re2j", "@maven//:org_threeten_threeten_extra", ], @@ -165,10 +165,10 @@ java_library( "//common/values:cel_value_provider", "//common/values:proto_message_value_provider", "//runtime:interpreter", - "@@protobuf~//java/core", "@maven//:com_google_code_findbugs_annotations", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:org_jspecify_jspecify", ], ) diff --git a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel index 6a80864c2..6210df4ec 100644 --- a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel @@ -41,12 +41,12 @@ java_library( "//runtime:runtime_helper", "//runtime:unknown_attributes", "//runtime:unknown_options", - "@@protobuf~//java/core", "@cel_spec//proto/test/v1/proto2:test_all_types_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", diff --git a/testing/src/main/java/dev/cel/testing/BUILD.bazel b/testing/src/main/java/dev/cel/testing/BUILD.bazel index bbe1ab489..be0b8ac69 100644 --- a/testing/src/main/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/main/java/dev/cel/testing/BUILD.bazel @@ -77,9 +77,9 @@ java_library( "//compiler", "//compiler:compiler_builder", "//parser:macro", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -107,10 +107,10 @@ java_library( "//extensions:optional_library", "//runtime", "//runtime:runtime_helper", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@cel_spec//proto/test/v1/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:junit_junit", ], diff --git a/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel index d166cfa76..37868fa3a 100644 --- a/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/main/java/dev/cel/validator/validators/BUILD.bazel @@ -17,7 +17,7 @@ java_library( ], deps = [ ":literal_validator", - "@@protobuf~//java/core", + "@maven//:com_google_protobuf_protobuf_java", ], ) @@ -30,7 +30,7 @@ java_library( ], deps = [ ":literal_validator", - "@@protobuf~//java/core", + "@maven//:com_google_protobuf_protobuf_java", ], ) diff --git a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel index 76f4de78a..5c0ab0e8a 100644 --- a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel @@ -24,9 +24,9 @@ java_library( "//validator/validators:homogeneous_literal", "//validator/validators:regex", "//validator/validators:timestamp", - "@@protobuf~//java/core", "@cel_spec//proto/cel/expr:expr_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", From e560d8892be6b5aeebfbcce14e3a88ebb6dd397b Mon Sep 17 00:00:00 2001 From: Sokwhan Huh Date: Thu, 10 Oct 2024 10:53:43 -0700 Subject: [PATCH 17/17] Release 0.8.0 PiperOrigin-RevId: 684501939 --- README.md | 4 ++-- publish/cel_version.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7d673e4db..01e0a1450 100644 --- a/README.md +++ b/README.md @@ -55,14 +55,14 @@ CEL-Java is available in Maven Central Repository. [Download the JARs here][8] o dev.cel cel - 0.7.1 + 0.8.0 ``` **Gradle** ```gradle -implementation 'dev.cel:cel:0.7.1' +implementation 'dev.cel:cel:0.8.0' ``` Then run this example: diff --git a/publish/cel_version.bzl b/publish/cel_version.bzl index c232b03b8..b92d340ca 100644 --- a/publish/cel_version.bzl +++ b/publish/cel_version.bzl @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. """Maven artifact version for CEL.""" -CEL_VERSION = "0.7.1" +CEL_VERSION = "0.8.0"