Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-Pick Add Automatic-Module-Name (#14562) #16388

Merged
merged 3 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/test_cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -346,10 +346,11 @@ jobs:
fail-fast: false # Don't cancel all jobs if one fails.
matrix:
include:
- name: MacOS CMake
os: macos-12
flags: -DCMAKE_CXX_STANDARD=14
cache-prefix: macos-cmake
# TODO: investigate and fix
# - name: MacOS CMake
# os: macos-12
# flags: -DCMAKE_CXX_STANDARD=14
# cache-prefix: macos-cmake
- name: Windows CMake
os: windows-2022
flags: >-
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/test_php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ jobs:
fail-fast: false # Don't cancel all jobs if one fails.
matrix:
version: ['8.2']

name: MacOS PHP ${{ matrix.version }}
runs-on: macos-12
steps:
Expand All @@ -167,7 +166,7 @@ jobs:
run: brew install coreutils gd

- name: Pin PHP version
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # 2.26.0
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # 2.30.0
with:
php-version: ${{ matrix.version }}

Expand Down
5 changes: 5 additions & 0 deletions build_defs/java_opts.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def protobuf_java_library(**kwargs):
)

def protobuf_versioned_java_library(
automatic_module_name,
bundle_description,
bundle_name,
bundle_symbolic_name,
Expand All @@ -44,6 +45,9 @@ def protobuf_versioned_java_library(
Args:
bundle_description: (required) The Bundle-Description header defines a short
description of this bundle.
automatic_module_name: (required) The Automatic-Module-Name header that represents
the name of the module when this bundle is used as an automatic
module.
bundle_name: (required) The Bundle-Name header defines a readable name for this
bundle. This should be a short, human-readable name that can
contain spaces.
Expand All @@ -65,6 +69,7 @@ def protobuf_versioned_java_library(
"""
osgi_java_library(
javacopts = JAVA_OPTS,
automatic_module_name = automatic_module_name,
bundle_doc_url = BUNDLE_DOC_URL,
bundle_license = BUNDLE_LICENSE,
bundle_version = PROTOBUF_JAVA_VERSION,
Expand Down
2 changes: 2 additions & 0 deletions java/core/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ protobuf_versioned_java_library(
srcs = LITE_SRCS + [
":gen_well_known_protos_javalite",
],
automatic_module_name = "com.google.protobuf",
bundle_description = "Lite version of Protocol Buffers library. This " +
"version is optimized for code size, but does not " +
"guarantee API/ABI stability.",
Expand Down Expand Up @@ -217,6 +218,7 @@ protobuf_versioned_java_library(
) + [
":gen_well_known_protos_java",
],
automatic_module_name = "com.google.protobuf",
bundle_description = "Core Protocol Buffers library. Protocol Buffers " +
"are a way of encoding structured data in an " +
"efficient yet extensible format.",
Expand Down
6 changes: 6 additions & 0 deletions java/osgi/OsgiWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ public final class OsgiWrapper implements Callable<Integer> {
description = "The classpath that contains dependencies of the input jar, separated with :")
private String classpath;

@Option(
names = {"--automatic_module_name"},
description = "The automatic module name of the bundle")
private String automaticModuleName;

@Option(
names = {"--bundle_copyright"},
description = "Copyright string for the bundle")
Expand Down Expand Up @@ -106,6 +111,7 @@ public Integer call() throws Exception {

Analyzer analyzer = new Analyzer();
analyzer.setJar(bin);
analyzer.setProperty(Analyzer.AUTOMATIC_MODULE_NAME, automaticModuleName);
analyzer.setProperty(Analyzer.BUNDLE_NAME, bundleName);
analyzer.setProperty(Analyzer.BUNDLE_SYMBOLICNAME, bundleSymbolicName);
analyzer.setProperty(Analyzer.BUNDLE_VERSION, bundleVersion);
Expand Down
4 changes: 4 additions & 0 deletions java/osgi/osgi.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ load("@rules_java//java:defs.bzl", "java_library")
# which is probably sub-optimal.
def osgi_java_library(
name,
automatic_module_name,
bundle_description,
bundle_doc_url,
bundle_license,
Expand Down Expand Up @@ -119,6 +120,7 @@ def osgi_java_library(
# Repackage the jar with an OSGI manifest
_osgi_jar(
name = name,
automatic_module_name = automatic_module_name,
bundle_description = bundle_description,
bundle_doc_url = bundle_doc_url,
bundle_license = bundle_license,
Expand All @@ -141,6 +143,7 @@ def _run_osgi_wrapper(ctx, input_jar, classpath_jars, output_jar):
args.add_joined("--classpath", classpath_jars, join_with = ":")
args.add("--input_jar", input_jar.path)
args.add("--output_jar", output_jar.path)
args.add("--automatic_module_name", ctx.attr.automatic_module_name)
args.add("--bundle_copyright", ctx.attr.bundle_copyright)
args.add("--bundle_description", ctx.attr.bundle_description)
args.add("--bundle_doc_url", ctx.attr.bundle_doc_url)
Expand Down Expand Up @@ -215,6 +218,7 @@ _osgi_jar = rule(
"output_jar": "lib%{name}.jar",
},
attrs = {
"automatic_module_name": attr.string(),
"bundle_copyright": attr.string(),
"bundle_description": attr.string(),
"bundle_doc_url": attr.string(),
Expand Down
1 change: 1 addition & 0 deletions java/util/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ protobuf_versioned_java_library(
srcs = glob([
"src/main/java/com/google/protobuf/util/*.java",
]),
automatic_module_name = "com.google.protobuf.util",
bundle_description = "Utilities for Protocol Buffers",
bundle_name = "Protocol Buffers [Util]",
bundle_symbolic_name = "com.google.protobuf.util",
Expand Down
Loading