Skip to content

Commit b2f212a

Browse files
l46kokcopybara-github
authored andcommitted
Add BaseProtoMessageValueProvider to decouple full/lite protobuf value providers
PiperOrigin-RevId: 750335608
1 parent 220312c commit b2f212a

38 files changed

+2616
-297
lines changed

common/internal/BUILD.bazel

Lines changed: 25 additions & 10 deletions
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

Lines changed: 40 additions & 1 deletion
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

Lines changed: 4 additions & 0 deletions
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

Lines changed: 185 additions & 6 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 = [
@@ -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,44 @@ 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+
92+
java_library(
93+
name = "combined_cel_value_provider",
94+
srcs = ["CombinedCelValueProvider.java"],
95+
tags = [
96+
],
97+
deps = [
98+
"//common/values:cel_value",
99+
"//common/values:cel_value_provider",
100+
"@maven//:com_google_errorprone_error_prone_annotations",
101+
"@maven//:com_google_guava_guava",
102+
],
103+
)
104+
105+
cel_android_library(
106+
name = "combined_cel_value_provider_android",
107+
srcs = ["CombinedCelValueProvider.java"],
108+
tags = [
109+
],
110+
deps = [
111+
":cel_value_android",
112+
"//common/values:cel_value_provider_android",
113+
"@maven//:com_google_errorprone_error_prone_annotations",
114+
"@maven_android//:com_google_guava_guava",
115+
],
116+
)
117+
69118
java_library(
70119
name = "values",
71120
srcs = CEL_VALUES_SOURCES,
@@ -86,9 +135,30 @@ java_library(
86135
],
87136
)
88137

138+
cel_android_library(
139+
name = "values_android",
140+
srcs = CEL_VALUES_SOURCES,
141+
tags = [
142+
],
143+
deps = [
144+
":cel_byte_string",
145+
":cel_value_android",
146+
"//:auto_value",
147+
"//common:error_codes",
148+
"//common:runtime_exception",
149+
"//common/annotations",
150+
"//common/types:type_providers_android",
151+
"//common/types:types_android",
152+
"@maven//:com_google_errorprone_error_prone_annotations",
153+
"@maven//:org_jspecify_jspecify",
154+
"@maven_android//:com_google_guava_guava",
155+
],
156+
)
157+
89158
java_library(
90159
name = "cel_byte_string",
91160
srcs = ["CelByteString.java"],
161+
# used_by_android
92162
tags = [
93163
],
94164
deps = [
@@ -115,6 +185,24 @@ java_library(
115185
],
116186
)
117187

188+
cel_android_library(
189+
name = "base_proto_cel_value_converter_android",
190+
srcs = ["BaseProtoCelValueConverter.java"],
191+
tags = [
192+
],
193+
deps = [
194+
":cel_byte_string",
195+
":cel_value_android",
196+
":values_android",
197+
"//common/annotations",
198+
"//common/internal:well_known_proto_android",
199+
"@maven//:com_google_errorprone_error_prone_annotations",
200+
"@maven//:com_google_protobuf_protobuf_java_util",
201+
"@maven_android//:com_google_guava_guava",
202+
"@maven_android//:com_google_protobuf_protobuf_javalite",
203+
],
204+
)
205+
118206
java_library(
119207
name = "proto_message_value",
120208
srcs = PROTO_MESSAGE_VALUE_SOURCES,
@@ -145,14 +233,13 @@ java_library(
145233
tags = [
146234
],
147235
deps = [
236+
":base_proto_message_value_provider",
148237
":cel_value",
149-
":cel_value_provider",
150238
":proto_message_value",
151-
"//common:error_codes",
152-
"//common:runtime_exception",
153239
"//common/annotations",
154240
"//common/internal:dynamic_proto",
155241
"//common/internal:proto_message_factory",
242+
"//common/values:base_proto_cel_value_converter",
156243
"@maven//:com_google_errorprone_error_prone_annotations",
157244
"@maven//:com_google_protobuf_protobuf_java",
158245
],
@@ -179,7 +266,99 @@ java_library(
179266
"//protobuf:cel_lite_descriptor",
180267
"@maven//:com_google_errorprone_error_prone_annotations",
181268
"@maven//:com_google_guava_guava",
269+
"@maven//:com_google_protobuf_protobuf_java",
270+
"@maven//:org_jspecify_jspecify",
271+
"@maven_android//:com_google_protobuf_protobuf_javalite",
272+
],
273+
)
274+
275+
cel_android_library(
276+
name = "proto_message_lite_value_android",
277+
srcs = [
278+
"ProtoLiteCelValueConverter.java",
279+
"ProtoMessageLiteValue.java",
280+
],
281+
tags = [
282+
],
283+
deps = [
284+
":base_proto_cel_value_converter_android",
285+
":cel_value_android",
286+
":values_android",
287+
"//:auto_value",
288+
"//common/annotations",
289+
"//common/internal:cel_lite_descriptor_pool_android",
290+
"//common/internal:well_known_proto_android",
291+
"//common/types:type_providers_android",
292+
"//common/types:types_android",
293+
"//protobuf:cel_lite_descriptor",
294+
"@maven//:com_google_errorprone_error_prone_annotations",
295+
"@maven//:com_google_guava_guava",
182296
"@maven//:org_jspecify_jspecify",
297+
"@maven_android//:com_google_guava_guava",
183298
"@maven_android//:com_google_protobuf_protobuf_javalite",
184299
],
185300
)
301+
302+
java_library(
303+
name = "proto_message_lite_value_provider",
304+
srcs = ["ProtoMessageLiteValueProvider.java"],
305+
tags = [
306+
],
307+
deps = [
308+
":base_proto_message_value_provider",
309+
":cel_value",
310+
":proto_message_lite_value",
311+
"//common/internal:cel_lite_descriptor_pool",
312+
"//common/internal:default_lite_descriptor_pool",
313+
"//common/values:base_proto_cel_value_converter",
314+
"//protobuf:cel_lite_descriptor",
315+
"@maven//:com_google_errorprone_error_prone_annotations",
316+
"@maven//:com_google_guava_guava",
317+
"@maven_android//:com_google_protobuf_protobuf_javalite",
318+
],
319+
)
320+
321+
cel_android_library(
322+
name = "proto_message_lite_value_provider_android",
323+
srcs = ["ProtoMessageLiteValueProvider.java"],
324+
tags = [
325+
],
326+
deps = [
327+
":base_proto_message_value_provider_android",
328+
":cel_value_android",
329+
":proto_message_lite_value_android",
330+
"//common/internal:cel_lite_descriptor_pool_android",
331+
"//common/internal:default_lite_descriptor_pool_android",
332+
"//common/values:base_proto_cel_value_converter_android",
333+
"//protobuf:cel_lite_descriptor",
334+
"@maven//:com_google_errorprone_error_prone_annotations",
335+
"@maven_android//:com_google_guava_guava",
336+
"@maven_android//:com_google_protobuf_protobuf_javalite",
337+
],
338+
)
339+
340+
java_library(
341+
name = "base_proto_message_value_provider",
342+
srcs = ["BaseProtoMessageValueProvider.java"],
343+
tags = [
344+
],
345+
deps = [
346+
"//common/annotations",
347+
"//common/values:base_proto_cel_value_converter",
348+
"//common/values:cel_value_provider",
349+
"@maven//:com_google_errorprone_error_prone_annotations",
350+
],
351+
)
352+
353+
cel_android_library(
354+
name = "base_proto_message_value_provider_android",
355+
srcs = ["BaseProtoMessageValueProvider.java"],
356+
tags = [
357+
],
358+
deps = [
359+
"//common/annotations",
360+
"//common/values:base_proto_cel_value_converter_android",
361+
"//common/values:cel_value_provider_android",
362+
"@maven//:com_google_errorprone_error_prone_annotations",
363+
],
364+
)

0 commit comments

Comments
 (0)