Skip to content

Commit 5499b4b

Browse files
l46kokcopybara-github
authored andcommitted
Add an interface for accepting CelValueProvider in lite runtime
PiperOrigin-RevId: 751559660
1 parent d398dc4 commit 5499b4b

File tree

15 files changed

+863
-56
lines changed

15 files changed

+863
-56
lines changed

common/internal/BUILD.bazel

+25-10
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,6 @@ java_library(
1616
exports = ["//common/src/main/java/dev/cel/common/internal:comparison_functions"],
1717
)
1818

19-
java_library(
20-
name = "cel_lite_descriptor_pool",
21-
exports = ["//common/src/main/java/dev/cel/common/internal:cel_lite_descriptor_pool"],
22-
)
23-
24-
java_library(
25-
name = "default_lite_descriptor_pool",
26-
exports = ["//common/src/main/java/dev/cel/common/internal:default_lite_descriptor_pool"],
27-
)
28-
2919
cel_android_library(
3020
name = "comparison_functions_android",
3121
exports = ["//common/src/main/java/dev/cel/common/internal:comparison_functions_android"],
@@ -82,6 +72,11 @@ java_library(
8272
exports = ["//common/src/main/java/dev/cel/common/internal:well_known_proto"],
8373
)
8474

75+
cel_android_library(
76+
name = "well_known_proto_android",
77+
exports = ["//common/src/main/java/dev/cel/common/internal:well_known_proto_android"],
78+
)
79+
8580
java_library(
8681
name = "proto_message_factory",
8782
exports = ["//common/src/main/java/dev/cel/common/internal:proto_message_factory"],
@@ -97,6 +92,26 @@ java_library(
9792
exports = ["//common/src/main/java/dev/cel/common/internal:cel_descriptor_pools"],
9893
)
9994

95+
java_library(
96+
name = "cel_lite_descriptor_pool",
97+
exports = ["//common/src/main/java/dev/cel/common/internal:cel_lite_descriptor_pool"],
98+
)
99+
100+
cel_android_library(
101+
name = "cel_lite_descriptor_pool_android",
102+
exports = ["//common/src/main/java/dev/cel/common/internal:cel_lite_descriptor_pool_android"],
103+
)
104+
105+
java_library(
106+
name = "default_lite_descriptor_pool",
107+
exports = ["//common/src/main/java/dev/cel/common/internal:default_lite_descriptor_pool"],
108+
)
109+
110+
cel_android_library(
111+
name = "default_lite_descriptor_pool_android",
112+
exports = ["//common/src/main/java/dev/cel/common/internal:default_lite_descriptor_pool_android"],
113+
)
114+
100115
java_library(
101116
name = "safe_string_formatter",
102117
# used_by_android

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

+40-1
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,18 @@ java_library(
252252
],
253253
)
254254

255+
cel_android_library(
256+
name = "well_known_proto_android",
257+
srcs = ["WellKnownProto.java"],
258+
tags = [
259+
],
260+
deps = [
261+
"//common/annotations",
262+
"@maven_android//:com_google_guava_guava",
263+
"@maven_android//:com_google_protobuf_protobuf_javalite",
264+
],
265+
)
266+
255267
java_library(
256268
name = "default_message_factory",
257269
srcs = ["DefaultMessageFactory.java"],
@@ -305,15 +317,26 @@ java_library(
305317
],
306318
)
307319

320+
cel_android_library(
321+
name = "cel_lite_descriptor_pool_android",
322+
srcs = ["CelLiteDescriptorPool.java"],
323+
tags = [
324+
],
325+
deps = [
326+
"//protobuf:cel_lite_descriptor",
327+
"@maven//:com_google_errorprone_error_prone_annotations",
328+
],
329+
)
330+
308331
java_library(
309332
name = "default_lite_descriptor_pool",
310333
srcs = ["DefaultLiteDescriptorPool.java"],
311334
tags = [
312335
],
313336
deps = [
314337
":cel_lite_descriptor_pool",
338+
":well_known_proto",
315339
"//common/annotations",
316-
"//common/internal:well_known_proto",
317340
"//protobuf:cel_lite_descriptor",
318341
"@maven//:com_google_errorprone_error_prone_annotations",
319342
"@maven//:com_google_guava_guava",
@@ -322,6 +345,22 @@ java_library(
322345
],
323346
)
324347

348+
cel_android_library(
349+
name = "default_lite_descriptor_pool_android",
350+
srcs = ["DefaultLiteDescriptorPool.java"],
351+
tags = [
352+
],
353+
deps = [
354+
":cel_lite_descriptor_pool_android",
355+
":well_known_proto_android",
356+
"//common/annotations",
357+
"//protobuf:cel_lite_descriptor",
358+
"@maven//:com_google_errorprone_error_prone_annotations",
359+
"@maven_android//:com_google_guava_guava",
360+
"@maven_android//:com_google_protobuf_protobuf_javalite",
361+
],
362+
)
363+
325364
java_library(
326365
name = "safe_string_formatter",
327366
srcs = ["SafeStringFormatter.java"],

common/src/main/java/dev/cel/common/internal/DefaultLiteDescriptorPool.java

+4
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@
5151
public final class DefaultLiteDescriptorPool implements CelLiteDescriptorPool {
5252
private final ImmutableMap<String, MessageLiteDescriptor> protoFqnToMessageInfo;
5353

54+
public static DefaultLiteDescriptorPool newInstance(CelLiteDescriptor... descriptors) {
55+
return newInstance(ImmutableSet.copyOf(descriptors));
56+
}
57+
5458
public static DefaultLiteDescriptorPool newInstance(ImmutableSet<CelLiteDescriptor> descriptors) {
5559
return new DefaultLiteDescriptorPool(descriptors);
5660
}

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

+110-3
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 = [
@@ -52,11 +53,21 @@ java_library(
5253
],
5354
)
5455

56+
cel_android_library(
57+
name = "cel_value_android",
58+
srcs = ["CelValue.java"],
59+
tags = [
60+
],
61+
deps = [
62+
"//common/annotations",
63+
"//common/types:type_providers_android",
64+
"@maven//:com_google_errorprone_error_prone_annotations",
65+
],
66+
)
67+
5568
java_library(
5669
name = "cel_value_provider",
57-
srcs = [
58-
"CelValueProvider.java",
59-
],
70+
srcs = ["CelValueProvider.java"],
6071
tags = [
6172
],
6273
deps = [
@@ -66,6 +77,18 @@ java_library(
6677
],
6778
)
6879

80+
cel_android_library(
81+
name = "cel_value_provider_android",
82+
srcs = ["CelValueProvider.java"],
83+
tags = [
84+
],
85+
deps = [
86+
":cel_value_android",
87+
"@maven//:com_google_errorprone_error_prone_annotations",
88+
"@maven_android//:com_google_guava_guava",
89+
],
90+
)
91+
6992
java_library(
7093
name = "values",
7194
srcs = CEL_VALUES_SOURCES,
@@ -86,9 +109,30 @@ java_library(
86109
],
87110
)
88111

112+
cel_android_library(
113+
name = "values_android",
114+
srcs = CEL_VALUES_SOURCES,
115+
tags = [
116+
],
117+
deps = [
118+
":cel_byte_string",
119+
":cel_value_android",
120+
"//:auto_value",
121+
"//common:error_codes",
122+
"//common:runtime_exception",
123+
"//common/annotations",
124+
"//common/types:type_providers_android",
125+
"//common/types:types_android",
126+
"@maven//:com_google_errorprone_error_prone_annotations",
127+
"@maven//:org_jspecify_jspecify",
128+
"@maven_android//:com_google_guava_guava",
129+
],
130+
)
131+
89132
java_library(
90133
name = "cel_byte_string",
91134
srcs = ["CelByteString.java"],
135+
# used_by_android
92136
tags = [
93137
],
94138
deps = [
@@ -115,6 +159,24 @@ java_library(
115159
],
116160
)
117161

162+
cel_android_library(
163+
name = "base_proto_cel_value_converter_android",
164+
srcs = ["BaseProtoCelValueConverter.java"],
165+
tags = [
166+
],
167+
deps = [
168+
":cel_byte_string",
169+
":cel_value_android",
170+
":values_android",
171+
"//common/annotations",
172+
"//common/internal:well_known_proto_android",
173+
"@maven//:com_google_errorprone_error_prone_annotations",
174+
"@maven//:com_google_protobuf_protobuf_java_util",
175+
"@maven_android//:com_google_guava_guava",
176+
"@maven_android//:com_google_protobuf_protobuf_javalite",
177+
],
178+
)
179+
118180
java_library(
119181
name = "proto_message_value",
120182
srcs = PROTO_MESSAGE_VALUE_SOURCES,
@@ -185,6 +247,33 @@ java_library(
185247
],
186248
)
187249

250+
cel_android_library(
251+
name = "proto_message_lite_value_android",
252+
srcs = [
253+
"ProtoLiteCelValueConverter.java",
254+
"ProtoMessageLiteValue.java",
255+
],
256+
tags = [
257+
],
258+
deps = [
259+
":base_proto_cel_value_converter_android",
260+
":cel_value_android",
261+
":values_android",
262+
"//:auto_value",
263+
"//common/annotations",
264+
"//common/internal:cel_lite_descriptor_pool_android",
265+
"//common/internal:well_known_proto_android",
266+
"//common/types:type_providers_android",
267+
"//common/types:types_android",
268+
"//protobuf:cel_lite_descriptor",
269+
"@maven//:com_google_errorprone_error_prone_annotations",
270+
"@maven//:com_google_guava_guava",
271+
"@maven//:org_jspecify_jspecify",
272+
"@maven_android//:com_google_guava_guava",
273+
"@maven_android//:com_google_protobuf_protobuf_javalite",
274+
],
275+
)
276+
188277
java_library(
189278
name = "proto_message_lite_value_provider",
190279
srcs = ["ProtoMessageLiteValueProvider.java"],
@@ -202,3 +291,21 @@ java_library(
202291
"@maven_android//:com_google_protobuf_protobuf_javalite",
203292
],
204293
)
294+
295+
cel_android_library(
296+
name = "proto_message_lite_value_provider_android",
297+
srcs = ["ProtoMessageLiteValueProvider.java"],
298+
tags = [
299+
],
300+
deps = [
301+
":cel_value_android",
302+
":cel_value_provider_android",
303+
":proto_message_lite_value_android",
304+
"//common/internal:cel_lite_descriptor_pool_android",
305+
"//common/internal:default_lite_descriptor_pool_android",
306+
"//protobuf:cel_lite_descriptor",
307+
"@maven//:com_google_errorprone_error_prone_annotations",
308+
"@maven_android//:com_google_guava_guava",
309+
"@maven_android//:com_google_protobuf_protobuf_javalite",
310+
],
311+
)

common/src/test/java/dev/cel/common/internal/DefaultLiteDescriptorPoolTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.google.protobuf.Descriptors.Descriptor;
2323
import com.google.protobuf.Descriptors.FieldDescriptor;
2424
import com.google.testing.junit.testparameterinjector.TestParameterInjector;
25-
import dev.cel.expr.conformance.proto3.TestAllTypesCelDescriptor;
25+
import dev.cel.expr.conformance.proto3.TestAllTypesProto3CelDescriptor;
2626
import dev.cel.protobuf.CelLiteDescriptor.FieldLiteDescriptor;
2727
import dev.cel.protobuf.CelLiteDescriptor.FieldLiteDescriptor.CelFieldValueType;
2828
import dev.cel.protobuf.CelLiteDescriptor.MessageLiteDescriptor;
@@ -104,7 +104,7 @@ public void wellKnownProto_compareAgainstFullDescriptors_allFieldPropertiesAreEq
104104
public void findDescriptor_success() {
105105
DefaultLiteDescriptorPool descriptorPool =
106106
DefaultLiteDescriptorPool.newInstance(
107-
ImmutableSet.of(TestAllTypesCelDescriptor.getDescriptor()));
107+
ImmutableSet.of(TestAllTypesProto3CelDescriptor.getDescriptor()));
108108

109109
MessageLiteDescriptor liteDescriptor =
110110
descriptorPool.getDescriptorOrThrow("cel.expr.conformance.proto3.TestAllTypes");

common/src/test/java/dev/cel/common/values/ProtoLiteCelValueConverterTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import dev.cel.common.internal.DefaultLiteDescriptorPool;
3434
import dev.cel.common.internal.WellKnownProto;
3535
import dev.cel.expr.conformance.proto3.TestAllTypes;
36-
import dev.cel.expr.conformance.proto3.TestAllTypesCelDescriptor;
36+
import dev.cel.expr.conformance.proto3.TestAllTypesProto3CelDescriptor;
3737
import java.time.Instant;
3838
import org.junit.Test;
3939
import org.junit.runner.RunWith;
@@ -42,7 +42,7 @@
4242
public class ProtoLiteCelValueConverterTest {
4343
private static final CelLiteDescriptorPool DESCRIPTOR_POOL =
4444
DefaultLiteDescriptorPool.newInstance(
45-
ImmutableSet.of(TestAllTypesCelDescriptor.getDescriptor()));
45+
ImmutableSet.of(TestAllTypesProto3CelDescriptor.getDescriptor()));
4646

4747
private static final ProtoLiteCelValueConverter PROTO_LITE_CEL_VALUE_CONVERTER =
4848
ProtoLiteCelValueConverter.newInstance(DESCRIPTOR_POOL);

common/src/test/java/dev/cel/common/values/ProtoMessageLiteValueProviderTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
import com.google.testing.junit.testparameterinjector.TestParameterInjector;
2121
import dev.cel.common.types.StructTypeReference;
2222
import dev.cel.expr.conformance.proto3.TestAllTypes;
23-
import dev.cel.expr.conformance.proto3.TestAllTypesCelDescriptor;
23+
import dev.cel.expr.conformance.proto3.TestAllTypesProto3CelDescriptor;
2424
import java.util.Optional;
2525
import org.junit.Test;
2626
import org.junit.runner.RunWith;
2727

2828
@RunWith(TestParameterInjector.class)
2929
public class ProtoMessageLiteValueProviderTest {
3030
private static final ProtoMessageLiteValueProvider VALUE_PROVIDER =
31-
ProtoMessageLiteValueProvider.newInstance(TestAllTypesCelDescriptor.getDescriptor());
31+
ProtoMessageLiteValueProvider.newInstance(TestAllTypesProto3CelDescriptor.getDescriptor());
3232

3333
@Test
3434
public void newValue_unknownType_returnsEmpty() {

common/src/test/java/dev/cel/common/values/ProtoMessageLiteValueTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import dev.cel.expr.conformance.proto3.TestAllTypes;
3737
import dev.cel.expr.conformance.proto3.TestAllTypes.NestedEnum;
3838
import dev.cel.expr.conformance.proto3.TestAllTypes.NestedMessage;
39-
import dev.cel.expr.conformance.proto3.TestAllTypesCelDescriptor;
39+
import dev.cel.expr.conformance.proto3.TestAllTypesProto3CelDescriptor;
4040
import java.time.Duration;
4141
import java.time.Instant;
4242
import org.junit.Test;
@@ -46,7 +46,7 @@
4646
public class ProtoMessageLiteValueTest {
4747
private static final CelLiteDescriptorPool DESCRIPTOR_POOL =
4848
DefaultLiteDescriptorPool.newInstance(
49-
ImmutableSet.of(TestAllTypesCelDescriptor.getDescriptor()));
49+
ImmutableSet.of(TestAllTypesProto3CelDescriptor.getDescriptor()));
5050

5151
private static final ProtoLiteCelValueConverter PROTO_LITE_CEL_VALUE_CONVERTER =
5252
ProtoLiteCelValueConverter.newInstance(DESCRIPTOR_POOL);

0 commit comments

Comments
 (0)