• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@bazel_skylib//rules:build_test.bzl", "build_test")
2load("@rules_java//java:java_library.bzl", "java_library")
3load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
4load("//:protobuf.bzl", "internal_gen_well_known_protos_java")
5load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
6load("//bazel:cc_proto_library.bzl", "cc_proto_library")
7load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
8load("//bazel:java_proto_library.bzl", "java_proto_library")
9load("//bazel:proto_library.bzl", "proto_library")
10load("//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain")
11load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_java_library", "protobuf_versioned_java_library")
12load("//conformance:defs.bzl", "conformance_test")
13load("//editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults")
14load("//java/internal:testing.bzl", "junit_tests")
15load("//upb/cmake:build_defs.bzl", "staleness_test")
16
17LITE_SRCS = [
18    "src/main/java/com/google/protobuf/AbstractMessageLite.java",
19    "src/main/java/com/google/protobuf/AbstractParser.java",
20    "src/main/java/com/google/protobuf/AbstractProtobufList.java",
21    "src/main/java/com/google/protobuf/AllocatedBuffer.java",
22    "src/main/java/com/google/protobuf/Android.java",
23    "src/main/java/com/google/protobuf/ArrayDecoders.java",
24    "src/main/java/com/google/protobuf/BinaryReader.java",
25    "src/main/java/com/google/protobuf/BinaryWriter.java",
26    "src/main/java/com/google/protobuf/BooleanArrayList.java",
27    "src/main/java/com/google/protobuf/BufferAllocator.java",
28    "src/main/java/com/google/protobuf/ByteBufferWriter.java",
29    "src/main/java/com/google/protobuf/ByteOutput.java",
30    "src/main/java/com/google/protobuf/ByteString.java",
31    "src/main/java/com/google/protobuf/CanIgnoreReturnValue.java",
32    "src/main/java/com/google/protobuf/CheckReturnValue.java",
33    "src/main/java/com/google/protobuf/CodedInputStream.java",
34    "src/main/java/com/google/protobuf/CodedInputStreamReader.java",
35    "src/main/java/com/google/protobuf/CodedOutputStream.java",
36    "src/main/java/com/google/protobuf/CodedOutputStreamWriter.java",
37    "src/main/java/com/google/protobuf/CompileTimeConstant.java",
38    "src/main/java/com/google/protobuf/DoubleArrayList.java",
39    "src/main/java/com/google/protobuf/ExperimentalApi.java",
40    "src/main/java/com/google/protobuf/ExtensionLite.java",
41    "src/main/java/com/google/protobuf/ExtensionRegistryFactory.java",
42    "src/main/java/com/google/protobuf/ExtensionRegistryLite.java",
43    "src/main/java/com/google/protobuf/ExtensionSchema.java",
44    "src/main/java/com/google/protobuf/ExtensionSchemaLite.java",
45    "src/main/java/com/google/protobuf/ExtensionSchemas.java",
46    "src/main/java/com/google/protobuf/FieldInfo.java",
47    "src/main/java/com/google/protobuf/FieldSet.java",
48    "src/main/java/com/google/protobuf/FieldType.java",
49    "src/main/java/com/google/protobuf/FloatArrayList.java",
50    "src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java",
51    "src/main/java/com/google/protobuf/GeneratedMessageLite.java",
52    "src/main/java/com/google/protobuf/InlineMe.java",
53    "src/main/java/com/google/protobuf/IntArrayList.java",
54    "src/main/java/com/google/protobuf/Internal.java",
55    "src/main/java/com/google/protobuf/InvalidProtocolBufferException.java",
56    "src/main/java/com/google/protobuf/IterableByteBufferInputStream.java",
57    "src/main/java/com/google/protobuf/Java8Compatibility.java",
58    "src/main/java/com/google/protobuf/JavaType.java",
59    "src/main/java/com/google/protobuf/LazyField.java",
60    "src/main/java/com/google/protobuf/LazyFieldLite.java",
61    "src/main/java/com/google/protobuf/LazyStringArrayList.java",
62    "src/main/java/com/google/protobuf/LazyStringList.java",
63    "src/main/java/com/google/protobuf/ListFieldSchema.java",
64    "src/main/java/com/google/protobuf/ListFieldSchemaLite.java",
65    "src/main/java/com/google/protobuf/ListFieldSchemas.java",
66    "src/main/java/com/google/protobuf/LongArrayList.java",
67    "src/main/java/com/google/protobuf/ManifestSchemaFactory.java",
68    "src/main/java/com/google/protobuf/MapEntryLite.java",
69    "src/main/java/com/google/protobuf/MapFieldLite.java",
70    "src/main/java/com/google/protobuf/MapFieldSchema.java",
71    "src/main/java/com/google/protobuf/MapFieldSchemaLite.java",
72    "src/main/java/com/google/protobuf/MapFieldSchemas.java",
73    "src/main/java/com/google/protobuf/MessageInfo.java",
74    "src/main/java/com/google/protobuf/MessageInfoFactory.java",
75    "src/main/java/com/google/protobuf/MessageLite.java",
76    "src/main/java/com/google/protobuf/MessageLiteOrBuilder.java",
77    "src/main/java/com/google/protobuf/MessageLiteToString.java",
78    "src/main/java/com/google/protobuf/MessageSchema.java",
79    "src/main/java/com/google/protobuf/MessageSetSchema.java",
80    "src/main/java/com/google/protobuf/MutabilityOracle.java",
81    "src/main/java/com/google/protobuf/NewInstanceSchema.java",
82    "src/main/java/com/google/protobuf/NewInstanceSchemaLite.java",
83    "src/main/java/com/google/protobuf/NewInstanceSchemas.java",
84    "src/main/java/com/google/protobuf/OneofInfo.java",
85    "src/main/java/com/google/protobuf/Parser.java",
86    "src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java",
87    "src/main/java/com/google/protobuf/ProtoSyntax.java",
88    "src/main/java/com/google/protobuf/Protobuf.java",
89    "src/main/java/com/google/protobuf/ProtobufArrayList.java",
90    "src/main/java/com/google/protobuf/ProtocolStringList.java",
91    "src/main/java/com/google/protobuf/RawMessageInfo.java",
92    "src/main/java/com/google/protobuf/Reader.java",
93    "src/main/java/com/google/protobuf/RopeByteString.java",
94    "src/main/java/com/google/protobuf/RuntimeVersion.java",
95    "src/main/java/com/google/protobuf/Schema.java",
96    "src/main/java/com/google/protobuf/SchemaFactory.java",
97    "src/main/java/com/google/protobuf/SchemaUtil.java",
98    "src/main/java/com/google/protobuf/SmallSortedMap.java",
99    "src/main/java/com/google/protobuf/StructuralMessageInfo.java",
100    "src/main/java/com/google/protobuf/TextFormatEscaper.java",
101    "src/main/java/com/google/protobuf/UninitializedMessageException.java",
102    "src/main/java/com/google/protobuf/UnknownFieldSchema.java",
103    "src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
104    "src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java",
105    "src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
106    "src/main/java/com/google/protobuf/UnsafeByteOperations.java",
107    "src/main/java/com/google/protobuf/UnsafeUtil.java",
108    "src/main/java/com/google/protobuf/Utf8.java",
109    "src/main/java/com/google/protobuf/WireFormat.java",
110    "src/main/java/com/google/protobuf/Writer.java",
111]
112
113FULL_SRCS = glob(
114    [
115        "src/main/java/com/google/protobuf/*.java",
116    ],
117    exclude = LITE_SRCS,
118) + [
119    ":gen_well_known_protos_java",
120]
121
122internal_gen_well_known_protos_java(
123    name = "gen_well_known_protos_javalite",
124    javalite = True,
125    deps = [
126        "//:any_proto",
127        "//:api_proto",
128        "//:descriptor_proto",
129        "//:duration_proto",
130        "//:empty_proto",
131        "//:field_mask_proto",
132        "//:java_features_proto",
133        "//:source_context_proto",
134        "//:struct_proto",
135        "//:timestamp_proto",
136        "//:type_proto",
137        "//:wrappers_proto",
138    ],
139)
140
141# Should be used as `//java/lite`.
142java_library(
143    name = "lite",
144    srcs = LITE_SRCS + [
145        ":gen_well_known_protos_javalite",
146    ],
147    visibility = [
148        "//java/lite:__pkg__",
149    ],
150)
151
152protobuf_versioned_java_library(
153    name = "lite_bundle",
154    srcs = LITE_SRCS + [
155        ":gen_well_known_protos_javalite",
156    ],
157    automatic_module_name = "com.google.protobuf",
158    bundle_description = "Lite version of Protocol Buffers library. This " +
159                         "version is optimized for code size, but does not " +
160                         "guarantee API/ABI stability.",
161    bundle_name = "Protocol Buffers [Lite]",
162    bundle_symbolic_name = "com.google.protobuf",
163    visibility = [
164        "//java/lite:__pkg__",
165    ],
166)
167
168# Bazel users, don't depend on this target, use //java/lite.
169protobuf_java_export(
170    name = "lite_mvn",
171    maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_JAVA_VERSION,
172    pom_template = "//java/lite:pom_template.xml",
173    resources = [
174        "//:java_features_proto",
175        "//:lite_well_known_protos",
176        "//src/google/protobuf:descriptor_proto_srcs",
177    ],
178    tags = ["manual"],
179    runtime_deps = [":lite_bundle"],
180)
181
182protobuf_java_library(
183    name = "lite_runtime_only",
184    srcs = LITE_SRCS,
185)
186
187proto_library(
188    name = "java_features_proto",
189    srcs = ["src/main/resources/google/protobuf/java_features.proto"],
190    strip_import_prefix = "/java/core/src/main/resources",
191    visibility = [
192        "//:__pkg__",
193        "//editions:__pkg__",
194        "//java/__subpackages__",
195        "//pkg:__pkg__",
196    ],
197    deps = ["//:descriptor_proto"],
198)
199
200cc_proto_library(
201    name = "java_features_cc_proto",
202    visibility = ["//editions:__pkg__"],
203    deps = [":java_features_proto"],
204)
205
206filegroup(
207    name = "java_features_proto_srcs",
208    srcs = ["src/main/resources/google/protobuf/java_features.proto"],
209    visibility = ["//pkg:__pkg__"],
210)
211
212compile_edition_defaults(
213    name = "java_edition_defaults",
214    srcs = [
215        "//:descriptor_proto",
216        "//:java_features_proto",
217    ],
218    maximum_edition = "2023",
219    minimum_edition = "PROTO2",
220)
221
222embed_edition_defaults(
223    name = "embedded_java_edition_defaults_generate",
224    defaults = "java_edition_defaults",
225    output = "generated/src/main/java/com/google/protobuf/JavaEditionDefaults.java",
226    placeholder = "DEFAULTS_VALUE",
227    template = "src/main/java/com/google/protobuf/JavaEditionDefaults.java.template",
228)
229
230staleness_test(
231    name = "generated_java_defaults_staleness_test",
232    outs = ["src/main/java/com/google/protobuf/JavaEditionDefaults.java"],
233    generated_pattern = "generated/%s",
234    tags = ["manual"],
235    target_files = ["src/main/java/com/google/protobuf/JavaEditionDefaults.java"],
236)
237
238internal_gen_well_known_protos_java(
239    name = "gen_well_known_protos_java",
240    deps = [
241        "//:any_proto",
242        "//:api_proto",
243        "//:compiler_plugin_proto",
244        "//:descriptor_proto",
245        "//:duration_proto",
246        "//:empty_proto",
247        "//:field_mask_proto",
248        "//:java_features_proto",
249        "//:source_context_proto",
250        "//:struct_proto",
251        "//:timestamp_proto",
252        "//:type_proto",
253        "//:wrappers_proto",
254    ],
255)
256
257java_library(
258    name = "core",
259    srcs = FULL_SRCS,
260    visibility = ["//visibility:public"],
261    exports = [
262        ":lite_runtime_only",
263    ],
264    deps = [
265        ":lite_runtime_only",
266    ],
267)
268
269protobuf_versioned_java_library(
270    name = "core_bundle",
271    srcs = FULL_SRCS,
272    automatic_module_name = "com.google.protobuf",
273    bundle_description = "Core Protocol Buffers library. Protocol Buffers " +
274                         "are a way of encoding structured data in an " +
275                         "efficient yet extensible format.",
276    bundle_name = "Protocol Buffers [Core]",
277    bundle_symbolic_name = "com.google.protobuf",
278    visibility = ["//visibility:public"],
279    exports = [
280        ":lite_runtime_only",
281    ],
282    deps = [
283        ":lite_runtime_only",
284    ],
285)
286
287# Bazel users, don't depend on this target, use :core.
288protobuf_java_export(
289    name = "core_mvn",
290    maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_JAVA_VERSION,
291    pom_template = "pom_template.xml",
292    resources = [
293        ":java_features_proto_srcs",
294        "//:well_known_type_protos",
295        "//src/google/protobuf:descriptor_proto_srcs",
296    ],
297    tags = ["manual"],
298    runtime_deps = [":core_bundle"],
299)
300
301filegroup(
302    name = "release",
303    srcs = [
304        ":core_mvn-docs",
305        ":core_mvn-maven-source",
306        ":core_mvn-pom",
307        ":core_mvn-project",
308        ":lite_mvn-docs",
309        ":lite_mvn-maven-source",
310        ":lite_mvn-pom",
311        ":lite_mvn-project",
312    ],
313    visibility = ["//java:__pkg__"],
314)
315
316proto_lang_toolchain(
317    name = "toolchain",
318    # keep this in sync w/ WELL_KNOWN_PROTO_MAP in //:BUILD
319    blacklisted_protos = [
320        "//:java_features_proto",
321        "//:any_proto",
322        "//:api_proto",
323        "//:compiler_plugin_proto",
324        "//:descriptor_proto",
325        "//:duration_proto",
326        "//:empty_proto",
327        "//:field_mask_proto",
328        "//:source_context_proto",
329        "//:struct_proto",
330        "//:timestamp_proto",
331        "//:type_proto",
332        "//:wrappers_proto",
333    ],
334    command_line = "--java_out=$(OUT)",
335    runtime = ":core",
336    visibility = ["//visibility:public"],
337)
338
339proto_library(
340    name = "java_test_protos",
341    srcs = glob(["src/test/proto/**/*.proto"]),
342    strip_import_prefix = "src/test/proto",
343    deps = [
344        "//:any_proto",
345        "//:descriptor_proto",
346        "//:java_features_proto",
347        "//:lite_test_protos",
348        "//:wrappers_proto",
349        "//src/google/protobuf:generic_test_protos",
350    ],
351)
352
353java_proto_library(
354    name = "generic_test_protos_java_proto",
355    visibility = [
356        "//java:__subpackages__",
357    ],
358    deps = ["//src/google/protobuf:generic_test_protos"],
359)
360
361java_proto_library(
362    name = "generic_test_protos_editions_java_proto",
363    visibility = [
364        "//java:__subpackages__",
365    ],
366    deps = ["//src/google/protobuf:generic_test_editions_protos"],
367)
368
369java_proto_library(
370    name = "lite_test_protos_java_proto",
371    visibility = [
372        "//java:__subpackages__",
373    ],
374    deps = ["//:lite_test_protos"],
375)
376
377java_proto_library(
378    name = "java_test_protos_java_proto",
379    deps = [":java_test_protos"],
380)
381
382protobuf_java_library(
383    name = "test_util",
384    srcs = [
385        "src/test/java/com/google/protobuf/TestUtil.java",
386        "src/test/java/com/google/protobuf/TestUtilLite.java",
387    ],
388    visibility = ["//java:__subpackages__"],
389    deps = [
390        ":core",
391        ":generic_test_protos_java_proto",
392        ":java_test_protos_java_proto",
393        ":lite_test_protos_java_proto",
394        "@protobuf_maven//:com_google_guava_guava",
395        "@protobuf_maven//:junit_junit",
396    ],
397)
398
399test_suite(
400    name = "tests",
401    tests = [
402        "conformance_test",
403        "core_build_test",
404        "core_tests",
405        "utf8_tests",
406    ],
407)
408
409build_test(
410    name = "core_build_test",
411    targets = [
412        ":core",
413    ],
414)
415
416conformance_test(
417    name = "conformance_test",
418    failure_list = "//conformance:failure_list_java.txt",
419    maximum_edition = "2023",
420    testee = "//conformance:conformance_java",
421    text_format_failure_list = "//conformance:text_format_failure_list_java.txt",
422)
423
424junit_tests(
425    name = "core_tests",
426    size = "small",
427    srcs = glob(
428        ["src/test/java/**/*.java"],
429        exclude = [
430            "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
431            "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
432            "src/test/java/com/google/protobuf/TestUtil.java",
433            "src/test/java/com/google/protobuf/TestUtilLite.java",
434            "src/test/java/com/google/protobuf/RuntimeVersionTest.java",
435        ],
436    ),
437    data = ["//src/google/protobuf:testdata"],
438    deps = [
439        ":core",
440        ":generic_test_protos_editions_java_proto",
441        ":generic_test_protos_java_proto",
442        ":java_test_protos_java_proto",
443        ":lite_test_protos_java_proto",
444        ":test_util",
445        "@protobuf_maven//:com_google_guava_guava",
446        "@protobuf_maven//:com_google_truth_truth",
447        "@protobuf_maven//:junit_junit",
448        "@protobuf_maven//:org_mockito_mockito_core",
449    ],
450)
451
452# The UTF-8 validation tests are much slower than the other tests, so they get
453# their own test target with a longer timeout.
454junit_tests(
455    name = "utf8_tests",
456    size = "large",
457    srcs = [
458        "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
459        "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
460        "src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java",
461    ],
462    deps = [
463        ":core",
464        "@protobuf_maven//:com_google_guava_guava",
465        "@protobuf_maven//:com_google_truth_truth",
466        "@protobuf_maven//:junit_junit",
467    ],
468)
469
470java_lite_proto_library(
471    name = "generic_test_protos_java_proto_lite",
472    visibility = [
473        "//java/kotlin-lite:__pkg__",
474        "//java/lite:__pkg__",
475    ],
476    deps = ["//src/google/protobuf:generic_test_protos"],
477)
478
479java_lite_proto_library(
480    name = "lite_test_protos_java_proto_lite",
481    visibility = [
482        "//java/kotlin-lite:__pkg__",
483        "//java/lite:__pkg__",
484    ],
485    deps = ["//:lite_test_protos"],
486)
487
488java_lite_proto_library(
489    name = "java_test_protos_java_proto_lite",
490    visibility = [
491        "//java/lite:__pkg__",
492    ],
493    deps = [":java_test_protos"],
494)
495
496genrule(
497    name = "rewrite_javalite_test_util",
498    srcs = [
499        "//java/lite:lite.awk",
500        "src/test/java/com/google/protobuf/TestUtil.java",
501    ],
502    outs = ["TestUtil.java"],
503    cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@",
504)
505
506protobuf_java_library(
507    name = "test_util_lite",
508    srcs = [
509        "src/test/java/com/google/protobuf/TestUtilLite.java",
510        ":rewrite_javalite_test_util",
511    ],
512    visibility = [
513        "//java/kotlin-lite:__pkg__",
514        "//java/lite:__pkg__",
515    ],
516    deps = [
517        ":generic_test_protos_java_proto_lite",
518        ":java_test_protos_java_proto_lite",
519        ":lite_runtime_only",
520        ":lite_test_protos_java_proto_lite",
521        "@protobuf_maven//:com_google_guava_guava",
522        "@protobuf_maven//:junit_junit",
523    ],
524)
525
526LITE_TEST_EXCLUSIONS = [
527    "src/test/java/com/google/protobuf/AbstractMessageTest.java",
528    "src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java",
529    "src/test/java/com/google/protobuf/AnyTest.java",
530    "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
531    "src/test/java/com/google/protobuf/DeprecatedFieldTest.java",
532    "src/test/java/com/google/protobuf/DebugFormatTest.java",
533    "src/test/java/com/google/protobuf/ConcurrentDescriptorsTest.java",
534    "src/test/java/com/google/protobuf/DescriptorsTest.java",
535    "src/test/java/com/google/protobuf/DiscardUnknownFieldsTest.java",
536    "src/test/java/com/google/protobuf/DynamicMessageTest.java",
537    "src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java",
538    "src/test/java/com/google/protobuf/FieldPresenceTest.java",
539    "src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java",
540    "src/test/java/com/google/protobuf/GeneratedMessageTest.java",
541    "src/test/java/com/google/protobuf/LazilyParsedMessageSetTest.java",
542    "src/test/java/com/google/protobuf/LazyFieldTest.java",
543    "src/test/java/com/google/protobuf/LazyStringEndToEndTest.java",
544    "src/test/java/com/google/protobuf/LegacyUnredactedTextFormatTest.java",
545    "src/test/java/com/google/protobuf/MapForProto2Test.java",
546    "src/test/java/com/google/protobuf/MapTest.java",
547    "src/test/java/com/google/protobuf/MessageTest.java",
548    "src/test/java/com/google/protobuf/NestedBuildersTest.java",
549    "src/test/java/com/google/protobuf/PackedFieldTest.java",
550    "src/test/java/com/google/protobuf/ParserTest.java",
551    "src/test/java/com/google/protobuf/ParseExceptionsTest.java",
552    "src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java",
553    "src/test/java/com/google/protobuf/Proto2SchemaTest.java",
554    "src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java",
555    "src/test/java/com/google/protobuf/ProtobufToStringOutputTest.java",
556    "src/test/java/com/google/protobuf/RepeatedFieldBuilderTest.java",
557    "src/test/java/com/google/protobuf/ServiceTest.java",
558    "src/test/java/com/google/protobuf/SingleFieldBuilderTest.java",
559    "src/test/java/com/google/protobuf/TestBadIdentifiers.java",
560    "src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java",
561    "src/test/java/com/google/protobuf/TextFormatParseLocationTest.java",
562    "src/test/java/com/google/protobuf/TextFormatPerformanceTest.java",
563    "src/test/java/com/google/protobuf/TextFormatTest.java",
564    "src/test/java/com/google/protobuf/TestUtil.java",
565    "src/test/java/com/google/protobuf/TestUtilLite.java",
566    "src/test/java/com/google/protobuf/TypeRegistryTest.java",
567    "src/test/java/com/google/protobuf/UnknownEnumValueTest.java",
568    "src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java",
569    "src/test/java/com/google/protobuf/UnknownFieldSetPerformanceTest.java",
570    "src/test/java/com/google/protobuf/UnknownFieldSetTest.java",
571    "src/test/java/com/google/protobuf/WellKnownTypesTest.java",
572    "src/test/java/com/google/protobuf/WireFormatTest.java",
573]
574
575junit_tests(
576    name = "lite_tests",
577    size = "large",
578    srcs = glob(
579        ["src/test/java/**/*.java"],
580        exclude = LITE_TEST_EXCLUSIONS,
581    ),
582    data = ["//src/google/protobuf:testdata"],
583    test_prefix = "Lite",
584    deps = [
585        ":generic_test_protos_java_proto_lite",
586        ":java_test_protos_java_proto_lite",
587        ":lite",
588        ":lite_test_protos_java_proto_lite",
589        ":test_util_lite",
590        "@protobuf_maven//:com_google_truth_truth",
591        "@protobuf_maven//:junit_junit",
592        "@protobuf_maven//:org_mockito_mockito_core",
593    ],
594)
595
596protobuf_java_library(
597    name = "v25_test_util_srcjar",
598    testonly = True,
599    srcs = [
600        "src/test/java/com/google/protobuf/TestUtil.java",
601        "src/test/java/com/google/protobuf/TestUtilLite.java",
602    ],
603    deps = [
604        ":core",
605        "//compatibility:v25_test_protos_srcjar",
606        "@protobuf_maven//:com_google_guava_guava",
607        "@protobuf_maven//:junit_junit",
608    ],
609)
610
611# Tests source compatibility against v25 gencode jar compiled against current runtime
612junit_tests(
613    name = "v25_core_tests_srcjar",
614    size = "small",
615    srcs = glob(
616        ["src/test/java/**/*.java"],
617        exclude = [
618            # Depends on test protos or API changes added in v4.x.x (e.g. editions)
619            "src/test/java/com/google/protobuf/TextFormatTest.java",
620            "src/test/java/com/google/protobuf/DescriptorsTest.java",
621            "src/test/java/com/google/protobuf/DebugFormatTest.java",
622            "src/test/java/com/google/protobuf/CodedOutputStreamTest.java",
623            "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
624            "src/test/java/com/google/protobuf/ProtobufToStringOutputTest.java",
625            # Excluded in core_tests
626            "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
627            "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
628            "src/test/java/com/google/protobuf/TestUtil.java",
629            "src/test/java/com/google/protobuf/TestUtilLite.java",
630            "src/test/java/com/google/protobuf/RuntimeVersionTest.java",
631        ],
632    ),
633    test_prefix = "v25SrcJar",
634    deps = [
635        ":core",
636        ":v25_test_util_srcjar",
637        "//compatibility:v25_test_protos_srcjar",
638        "@protobuf_maven//:com_google_guava_guava",
639        "@protobuf_maven//:com_google_truth_truth",
640        "@protobuf_maven//:junit_junit",
641        "@protobuf_maven//:org_mockito_mockito_core",
642    ],
643)
644
645protobuf_java_library(
646    name = "v25_test_util_jar",
647    testonly = True,
648    srcs = [
649        "src/test/java/com/google/protobuf/TestUtil.java",
650        "src/test/java/com/google/protobuf/TestUtilLite.java",
651    ],
652    deps = [
653        ":core",
654        "//compatibility:v25_test_protos_jar",
655        "@protobuf_maven//:com_google_guava_guava",
656        "@protobuf_maven//:junit_junit",
657    ],
658)
659
660# Tests binary compatibility against v25 gencode ja compiled against v25 runtime
661junit_tests(
662    name = "v25_core_tests_jar",
663    size = "small",
664    srcs = glob(
665        ["src/test/java/**/*.java"],
666        exclude = [
667            # Depends on test protos or API changes added in v4.x.x (e.g. editions)
668            "src/test/java/com/google/protobuf/TextFormatTest.java",
669            "src/test/java/com/google/protobuf/DescriptorsTest.java",
670            "src/test/java/com/google/protobuf/DebugFormatTest.java",
671            "src/test/java/com/google/protobuf/CodedOutputStreamTest.java",
672            "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
673            "src/test/java/com/google/protobuf/ProtobufToStringOutputTest.java",
674            # Excluded in core_tests
675            "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
676            "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
677            "src/test/java/com/google/protobuf/TestUtil.java",
678            "src/test/java/com/google/protobuf/TestUtilLite.java",
679            "src/test/java/com/google/protobuf/RuntimeVersionTest.java",
680        ],
681    ),
682    test_prefix = "v25Jar",
683    deps = [
684        ":core",
685        ":v25_test_util_jar",
686        "//compatibility:v25_test_protos_jar",
687        "@protobuf_maven//:com_google_guava_guava",
688        "@protobuf_maven//:com_google_truth_truth",
689        "@protobuf_maven//:junit_junit",
690        "@protobuf_maven//:org_mockito_mockito_core",
691    ],
692)
693
694pkg_files(
695    name = "dist_files",
696    srcs = glob([
697        "src/main/java/com/google/protobuf/*.java",
698        "src/main/resources/google/protobuf/*.proto",
699        "src/test/java/**/*.java",
700        "src/test/proto/**/*.proto",
701    ]) + [
702        "BUILD.bazel",
703        "generate-sources-build.xml",
704        "generate-test-sources-build.xml",
705        "pom_template.xml",
706    ],
707    strip_prefix = strip_prefix.from_root(""),
708    visibility = ["//java:__pkg__"],
709)
710
711