Skip to content

Commit 5e2e594

Browse files
l46kokcopybara-github
authored andcommitted
Migrate Lite Runtime to Program Planner
PiperOrigin-RevId: 945938801
1 parent 7d6d21e commit 5e2e594

29 files changed

Lines changed: 1266 additions & 844 deletions

bundle/src/test/java/dev/cel/bundle/CelImplTest.java

Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
import com.google.rpc.context.AttributeContext;
6060
import com.google.testing.junit.testparameterinjector.TestParameter;
6161
import com.google.testing.junit.testparameterinjector.TestParameterInjector;
62-
import com.google.testing.junit.testparameterinjector.TestParameters;
6362
import dev.cel.checker.CelCheckerLegacyImpl;
6463
import dev.cel.checker.DescriptorTypeProvider;
6564
import dev.cel.checker.ProtoTypeMask;
@@ -232,9 +231,7 @@ public void check() throws Exception {
232231
}
233232

234233
@Test
235-
@TestParameters("{useProtoResultType: false}")
236-
@TestParameters("{useProtoResultType: true}")
237-
public void compile(boolean useProtoResultType) throws Exception {
234+
public void compile(@TestParameter boolean useProtoResultType) throws Exception {
238235
CelBuilder celBuilder = standardCelBuilderWithMacros();
239236
if (useProtoResultType) {
240237
celBuilder.setProtoResultType(CelProtoTypes.BOOL);
@@ -246,9 +243,7 @@ public void compile(boolean useProtoResultType) throws Exception {
246243
}
247244

248245
@Test
249-
@TestParameters("{useProtoResultType: false}")
250-
@TestParameters("{useProtoResultType: true}")
251-
public void compile_resultTypeCheckFailure(boolean useProtoResultType) {
246+
public void compile_resultTypeCheckFailure(@TestParameter boolean useProtoResultType) {
252247
CelBuilder celBuilder = standardCelBuilderWithMacros();
253248
if (useProtoResultType) {
254249
celBuilder.setProtoResultType(CelProtoTypes.STRING);
@@ -563,23 +558,6 @@ public void program_withVars() throws Exception {
563558
assertThat(program.eval(ImmutableMap.of("variable", "hello"))).isEqualTo(true);
564559
}
565560

566-
@Test
567-
public void program_withCelValue() throws Exception {
568-
Cel cel =
569-
standardCelBuilderWithMacros()
570-
.setOptions(CelOptions.current().enableCelValue(true).build())
571-
.addDeclarations(
572-
Decl.newBuilder()
573-
.setName("variable")
574-
.setIdent(IdentDecl.newBuilder().setType(CelProtoTypes.STRING))
575-
.build())
576-
.setResultType(SimpleType.BOOL)
577-
.build();
578-
579-
CelRuntime.Program program = cel.createProgram(cel.compile("variable == 'hello'").getAst());
580-
581-
assertThat(program.eval(ImmutableMap.of("variable", "hello"))).isEqualTo(true);
582-
}
583561

584562
@Test
585563
public void program_withProtoVars() throws Exception {
@@ -1006,9 +984,8 @@ public void program_protoActivation() throws Exception {
1006984
}
1007985

1008986
@Test
1009-
@TestParameters("{resolveTypeDependencies: false}")
1010-
@TestParameters("{resolveTypeDependencies: true}")
1011-
public void program_enumTypeDirectResolution(boolean resolveTypeDependencies) throws Exception {
987+
public void program_enumTypeDirectResolution(@TestParameter boolean resolveTypeDependencies)
988+
throws Exception {
1012989
Cel cel =
1013990
standardCelBuilderWithMacros()
1014991
.addFileTypes(StandaloneGlobalEnum.getDescriptor().getFile())
@@ -1029,9 +1006,7 @@ public void program_enumTypeDirectResolution(boolean resolveTypeDependencies) th
10291006
}
10301007

10311008
@Test
1032-
@TestParameters("{resolveTypeDependencies: false}")
1033-
@TestParameters("{resolveTypeDependencies: true}")
1034-
public void program_enumTypeReferenceResolution(boolean resolveTypeDependencies)
1009+
public void program_enumTypeReferenceResolution(@TestParameter boolean resolveTypeDependencies)
10351010
throws Exception {
10361011
Cel cel =
10371012
standardCelBuilderWithMacros()
@@ -1429,25 +1404,6 @@ public void programAdvanceEvaluation_nestedSelect() throws Exception {
14291404
.isEqualTo(CelUnknownSet.create(CelAttribute.fromQualifiedIdentifier("com.google.a")));
14301405
}
14311406

1432-
@Test
1433-
public void programAdvanceEvaluation_nestedSelect_withCelValue() throws Exception {
1434-
Cel cel =
1435-
standardCelBuilderWithMacros()
1436-
.setOptions(
1437-
CelOptions.current().enableUnknownTracking(true).enableCelValue(true).build())
1438-
.addVar("com", MapType.create(SimpleType.STRING, SimpleType.DYN))
1439-
.addFunctionBindings()
1440-
.setResultType(SimpleType.BOOL)
1441-
.build();
1442-
CelRuntime.Program program = cel.createProgram(cel.compile("com.google.a || false").getAst());
1443-
1444-
assertThat(
1445-
program.advanceEvaluation(
1446-
UnknownContext.create(
1447-
fromMap(ImmutableMap.of()),
1448-
ImmutableList.of(CelAttributePattern.fromQualifiedIdentifier("com.google.a")))))
1449-
.isEqualTo(CelUnknownSet.create(CelAttribute.fromQualifiedIdentifier("com.google.a")));
1450-
}
14511407

14521408
@Test
14531409
public void programAdvanceEvaluation_argumentMergeErrorPriority() throws Exception {

common/BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ java_library(
2222
exports = ["//common/src/main/java/dev/cel/common:container"],
2323
)
2424

25+
cel_android_library(
26+
name = "container_android",
27+
exports = ["//common/src/main/java/dev/cel/common:container_android"],
28+
)
29+
2530
java_library(
2631
name = "proto_ast",
2732
exports = ["//common/src/main/java/dev/cel/common:proto_ast"],

common/ast/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ java_library(
1717
exports = ["//common/src/main/java/dev/cel/common/ast:cel_block"],
1818
)
1919

20+
cel_android_library(
21+
name = "cel_block_android",
22+
visibility = ["//:internal"],
23+
exports = ["//common/src/main/java/dev/cel/common/ast:cel_block_android"],
24+
)
25+
2026
cel_android_library(
2127
name = "ast_android",
2228
exports = ["//common/src/main/java/dev/cel/common/ast:ast_android"],

common/navigation/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@rules_java//java:defs.bzl", "java_library")
2+
load("//:cel_android_rules.bzl", "cel_android_library")
23

34
package(
45
default_applicable_licenses = ["//:license"],
@@ -15,6 +16,11 @@ java_library(
1516
exports = ["//common/src/main/java/dev/cel/common/navigation"],
1617
)
1718

19+
cel_android_library(
20+
name = "navigation_android",
21+
exports = ["//common/src/main/java/dev/cel/common/navigation:navigation_android"],
22+
)
23+
1824
java_library(
1925
name = "mutable_navigation",
2026
exports = ["//common/src/main/java/dev/cel/common/navigation:mutable_navigation"],

common/src/main/java/dev/cel/common/BUILD.bazel

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,18 @@ java_library(
365365
],
366366
)
367367

368+
cel_android_library(
369+
name = "container_android",
370+
srcs = ["CelContainer.java"],
371+
tags = [
372+
],
373+
deps = [
374+
"//:auto_value",
375+
"@maven//:com_google_errorprone_error_prone_annotations",
376+
"@maven_android//:com_google_guava_guava",
377+
],
378+
)
379+
368380
java_library(
369381
name = "operator",
370382
srcs = ["Operator.java"],

common/src/main/java/dev/cel/common/ast/BUILD.bazel

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,20 @@ java_library(
7171
],
7272
)
7373

74+
cel_android_library(
75+
name = "cel_block_android",
76+
srcs = ["CelBlock.java"],
77+
tags = [
78+
],
79+
deps = [
80+
":ast_android",
81+
"//common:cel_ast_android",
82+
"//common/annotations",
83+
"//common/navigation:navigation_android",
84+
"@maven_android//:com_google_guava_guava",
85+
],
86+
)
87+
7488
java_library(
7589
name = "expr_converter",
7690
srcs = EXPR_CONVERTER_SOURCES,

common/src/main/java/dev/cel/common/navigation/BUILD.bazel

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@rules_java//java:defs.bzl", "java_library")
2+
load("//:cel_android_rules.bzl", "cel_android_library")
23

34
package(
45
default_applicable_licenses = [
@@ -28,6 +29,25 @@ java_library(
2829
],
2930
)
3031

32+
cel_android_library(
33+
name = "common_android",
34+
srcs = [
35+
"BaseNavigableExpr.java",
36+
"CelNavigableExprVisitor.java",
37+
"ExprPropertyCalculator.java",
38+
"TraversalOrder.java",
39+
],
40+
tags = [
41+
],
42+
deps = [
43+
"//:auto_value",
44+
"//common/ast:ast_android",
45+
"@maven//:com_google_errorprone_error_prone_annotations",
46+
"@maven//:org_jspecify_jspecify",
47+
"@maven_android//:com_google_guava_guava",
48+
],
49+
)
50+
3151
java_library(
3252
name = "navigation",
3353
srcs = [
@@ -47,6 +67,25 @@ java_library(
4767
],
4868
)
4969

70+
cel_android_library(
71+
name = "navigation_android",
72+
srcs = [
73+
"CelNavigableAst.java",
74+
"CelNavigableExpr.java",
75+
],
76+
tags = [
77+
],
78+
deps = [
79+
":common_android",
80+
"//:auto_value",
81+
"//common:cel_ast_android",
82+
"//common/ast:ast_android",
83+
"@maven//:com_google_errorprone_error_prone_annotations",
84+
"@maven//:org_jspecify_jspecify",
85+
"@maven_android//:com_google_guava_guava",
86+
],
87+
)
88+
5089
java_library(
5190
name = "mutable_navigation",
5291
srcs = [

common/src/main/java/dev/cel/common/values/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ java_library(
408408
],
409409
deps = [
410410
"//common/annotations",
411+
"//common/values",
411412
"//common/values:base_proto_cel_value_converter",
412413
"//common/values:cel_value_provider",
413414
"@maven//:com_google_errorprone_error_prone_annotations",
@@ -423,6 +424,7 @@ cel_android_library(
423424
"//common/annotations",
424425
"//common/values:base_proto_cel_value_converter_android",
425426
"//common/values:cel_value_provider_android",
427+
"//common/values:values_android",
426428
"@maven//:com_google_errorprone_error_prone_annotations",
427429
],
428430
)

common/src/main/java/dev/cel/common/values/BaseProtoMessageValueProvider.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@
2828
public abstract class BaseProtoMessageValueProvider implements CelValueProvider {
2929

3030
public abstract BaseProtoCelValueConverter protoCelValueConverter();
31+
32+
@Override
33+
public CelValueConverter celValueConverter() {
34+
return protoCelValueConverter();
35+
}
3136
}

runtime/BUILD.bazel

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,21 @@ java_library(
226226
exports = ["//runtime/src/main/java/dev/cel/runtime:interpreter_util"],
227227
)
228228

229+
cel_android_library(
230+
name = "interpreter_util_android",
231+
exports = ["//runtime/src/main/java/dev/cel/runtime:interpreter_util_android"],
232+
)
233+
229234
java_library(
230235
name = "evaluation_listener",
231236
exports = ["//runtime/src/main/java/dev/cel/runtime:evaluation_listener"],
232237
)
233238

239+
cel_android_library(
240+
name = "evaluation_listener_android",
241+
exports = ["//runtime/src/main/java/dev/cel/runtime:evaluation_listener_android"],
242+
)
243+
234244
cel_android_library(
235245
name = "standard_functions_android",
236246
exports = [
@@ -352,7 +362,20 @@ java_library(
352362
],
353363
)
354364

365+
cel_android_library(
366+
name = "accumulated_unknowns_android",
367+
visibility = ["//:internal"],
368+
exports = [
369+
"//runtime/src/main/java/dev/cel/runtime:accumulated_unknowns_android",
370+
],
371+
)
372+
355373
java_library(
356374
name = "partial_vars",
357375
exports = ["//runtime/src/main/java/dev/cel/runtime:partial_vars"],
358376
)
377+
378+
cel_android_library(
379+
name = "partial_vars_android",
380+
exports = ["//runtime/src/main/java/dev/cel/runtime:partial_vars_android"],
381+
)

0 commit comments

Comments
 (0)