diff --git a/BUILD b/BUILD index a0c93676a0..37030da861 100644 --- a/BUILD +++ b/BUILD @@ -293,12 +293,45 @@ WELL_KNOWN_PROTO_MAP = { WELL_KNOWN_PROTOS = [value[0] for value in WELL_KNOWN_PROTO_MAP.values()] +LITE_WELL_KNOWN_PROTO_MAP = { + "any": ("src/google/protobuf/any.proto", []), + "api": ( + "src/google/protobuf/api.proto", + [ + "source_context", + "type", + ], + ), + "duration": ("src/google/protobuf/duration.proto", []), + "empty": ("src/google/protobuf/empty.proto", []), + "field_mask": ("src/google/protobuf/field_mask.proto", []), + "source_context": ("src/google/protobuf/source_context.proto", []), + "struct": ("src/google/protobuf/struct.proto", []), + "timestamp": ("src/google/protobuf/timestamp.proto", []), + "type": ( + "src/google/protobuf/type.proto", + [ + "any", + "source_context", + ], + ), + "wrappers": ("src/google/protobuf/wrappers.proto", []), +} + +LITE_WELL_KNOWN_PROTOS = [value[0] for value in LITE_WELL_KNOWN_PROTO_MAP.values()] + filegroup( name = "well_known_protos", srcs = WELL_KNOWN_PROTOS, visibility = ["//visibility:public"], ) +filegroup( + name = "lite_well_known_protos", + srcs = LITE_WELL_KNOWN_PROTOS, + visibility = ["//visibility:public"], +) + adapt_proto_library( name = "cc_wkt_protos_genproto", deps = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()], @@ -747,7 +780,7 @@ internal_gen_well_known_protos_java( internal_gen_well_known_protos_java( name = "gen_well_known_protos_javalite", - deps = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()], + deps = [proto + "_proto" for proto in LITE_WELL_KNOWN_PROTO_MAP.keys()], javalite = True, visibility = [ "//java:__subpackages__", diff --git a/Makefile.am b/Makefile.am index c1c98a424c..a71f4d117b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -280,6 +280,7 @@ java_EXTRA_DIST= java/core/generate-sources-build.xml \ java/core/generate-test-sources-build.xml \ java/core/pom.xml \ + java/core/pom_template.xml \ java/core/src/main/java/com/google/protobuf/AbstractMessage.java \ java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java \ java/core/src/main/java/com/google/protobuf/AbstractParser.java \ @@ -567,6 +568,7 @@ java_EXTRA_DIST= java/lite/generate-test-sources-build.xml \ java/lite/lite.awk \ java/lite/pom.xml \ + java/lite/pom_template.xml \ java/lite/process-lite-sources-build.xml \ java/lite/src/test/java/com/google/protobuf/LiteTest.java \ java/lite/src/test/java/com/google/protobuf/Proto2MessageLiteInfoFactory.java \ @@ -574,6 +576,7 @@ java_EXTRA_DIST= java/pom.xml \ java/util/BUILD \ java/util/pom.xml \ + java/util/pom_template.xml \ java/util/src/main/java/com/google/protobuf/util/Durations.java \ java/util/src/main/java/com/google/protobuf/util/FieldMaskTree.java \ java/util/src/main/java/com/google/protobuf/util/FieldMaskUtil.java \ diff --git a/WORKSPACE b/WORKSPACE index 3b78ba193e..94aa8d86b8 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -38,13 +38,13 @@ bind( load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( artifacts = [ - "com.google.guava:guava:30.1.1-jre", "com.google.code.gson:gson:2.8.6", "com.google.errorprone:error_prone_annotations:2.3.2", + "com.google.guava:guava:30.1.1-jre", + "com.google.truth:truth:1.1.2", "junit:junit:4.12", "org.easymock:easymock:3.2", "org.easymock:easymockclassextension:3.2", - "com.google.truth:truth:1.1.2", ], repositories = [ "https://repo1.maven.org/maven2", diff --git a/java/core/BUILD b/java/core/BUILD index 4d8895a8ef..e1e14f6564 100644 --- a/java/core/BUILD +++ b/java/core/BUILD @@ -1,7 +1,9 @@ load("@bazel_skylib//rules:build_test.bzl", "build_test") load("@rules_java//java:defs.bzl", "java_library", "java_proto_library", "java_lite_proto_library") +load("@rules_jvm_external//:defs.bzl", "java_export") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") load("//:internal.bzl", "conformance_test") +load("//:protobuf_version.bzl", "PROTOBUF_VERSION") load("//java/internal:testing.bzl", "junit_tests") LITE_SRCS = [ @@ -96,14 +98,19 @@ LITE_SRCS = [ ] # Should be used as `//java/lite`. -java_library( +java_export( name = "lite", + maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_VERSION, + pom_template = "//java/lite:pom_template.xml", srcs = LITE_SRCS + [ "//:gen_well_known_protos_javalite" ], visibility = [ "//java/lite:__pkg__", ], + resources = [ + "//:lite_well_known_protos", + ], ) java_library( @@ -111,8 +118,10 @@ java_library( srcs = LITE_SRCS, ) -java_library( +java_export( name = "core", + maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_VERSION, + pom_template = "pom_template.xml", srcs = glob( [ "src/main/java/com/google/protobuf/*.java", @@ -128,6 +137,9 @@ java_library( deps = [ ":lite_runtime_only", ], + resources = [ + "//:well_known_protos", + ], ) proto_lang_toolchain( @@ -324,3 +336,4 @@ junit_tests( "//external:truth", ] ) + diff --git a/java/core/pom_template.xml b/java/core/pom_template.xml new file mode 100644 index 0000000000..2c61281b0d --- /dev/null +++ b/java/core/pom_template.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + {groupId} + protobuf-parent + {version} + + + {artifactId} + {type} + + Protocol Buffers [Core] + + Core Protocol Buffers library. Protocol Buffers are a way of encoding structured data in an + efficient yet extensible format. + + diff --git a/java/lite/BUILD b/java/lite/BUILD index 639f30879f..35a1368b30 100644 --- a/java/lite/BUILD +++ b/java/lite/BUILD @@ -4,6 +4,7 @@ load("//:internal.bzl", "conformance_test") load("//java/internal:testing.bzl", "junit_tests") exports_files(["lite.awk"], visibility = ["//java/core:__pkg__"]) +exports_files(["pom_template.xml"], visibility = ["//java/core:__pkg__"]) alias( name = "lite", diff --git a/java/lite/pom_template.xml b/java/lite/pom_template.xml new file mode 100644 index 0000000000..6d705fdcbe --- /dev/null +++ b/java/lite/pom_template.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + {groupId} + protobuf-parent + {version} + + + {artifactId} + {type} + + Protocol Buffers [Lite] + + Lite version of Protocol Buffers library. This version is optimized for code size, but does + not guarantee API/ABI stability. + + + diff --git a/java/util/BUILD b/java/util/BUILD index 25853f7167..b66d4b0e30 100644 --- a/java/util/BUILD +++ b/java/util/BUILD @@ -1,9 +1,13 @@ -load("@rules_java//java:defs.bzl", "java_library", "java_proto_library") +load("@rules_java//java:defs.bzl", "java_proto_library") +load("@rules_jvm_external//:defs.bzl", "java_export") load("@rules_proto//proto:defs.bzl", "proto_library") +load("//:protobuf_version.bzl", "PROTOBUF_VERSION") load("//java/internal:testing.bzl", "junit_tests") -java_library( +java_export( name = "util", + maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_VERSION, + pom_template = "pom_template.xml", srcs = glob([ "src/main/java/com/google/protobuf/util/*.java", ]), @@ -13,7 +17,6 @@ java_library( "//external:gson", "//external:guava", "//java/core", - "//java/lite", ], ) diff --git a/java/util/pom_template.xml b/java/util/pom_template.xml new file mode 100644 index 0000000000..b20e62ad59 --- /dev/null +++ b/java/util/pom_template.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + {groupId} + protobuf-parent + {version} + + + {artifactId} + {type} + + Protocol Buffers [Util] + Utilities for Protocol Buffers + + {dependencies} + + diff --git a/protobuf_version.bzl b/protobuf_version.bzl new file mode 100644 index 0000000000..dd1f797329 --- /dev/null +++ b/protobuf_version.bzl @@ -0,0 +1 @@ +PROTOBUF_VERSION = '3.17.3'